我不知道樓主具體指的是什么?什么叫取得目錄中的函數(shù)名?是指文件名嗎?
方正網(wǎng)站建設公司成都創(chuàng)新互聯(lián)公司,方正網(wǎng)站設計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為方正數(shù)千家提供企業(yè)網(wǎng)站建設服務。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站建設要多少錢,請找那個售后服務好的方正做網(wǎng)站的公司定做!
如果是的話,看這個程序:
#include
process.h
main()
{
clrscr();
system("dir
e:\\younger");
/*"e:\\younger"可以改成任意目錄*/
getch();
}這樣可以嗎,樓主?
C語言里
在main函數(shù)的第二個參數(shù)里面,
保存著當前程序運行的目錄
也就是argv[0]
main( int argc, char *argv[])
{
printf("%s ", argv[0] );
}
就是文件當前所在位置
不過需要注意的一點是
這個路徑里面保存了當前文件的文件名
如果你只是需要路徑的話還需要自己操作一下
main(int a,char *c[])
{
char s[100];
int i;
//把路徑保存到字符串s里
strcpy(s,c[0]);
for(i=strlen(s); i0 ; i--)
if( s[i] == '\\')
{
s[i]='\0';
break;
}
//找到最后一個 \ 并刪除之后的內(nèi)容
//最后輸出的s,就是當前文件的路徑了
puts(s);
}
這是我的TFTP程序中的一個函數(shù),是搜索當前盤符下的所有文件,包括文件的大小,并發(fā)送到客戶端,其中就有查找當前路徑下的文件,你自己挑一下,應該能完成你的需求。
void FileList(sockaddr_in sour_addr,char strStartDir[])
{
char sendbuffer[1024];
sockaddr_in destaddr;
int sourlen = 0;
int ret = 0;
int len = 0;
int flen = 0;
fd_set fdr;
unsigned short blocknum = 0;
FILE *file;
char filename[128];
strcpy(filename,strStartDir+2); /*獲取文件名*/
strcat(filename,"\\*");
destaddr.sin_family = AF_INET;
destaddr.sin_port = sour_addr.sin_port;
destaddr.sin_addr.s_addr = inet_addr(desthost);//
WIN32_FIND_DATA FindFileData;
HANDLE hFind;
hFind = FindFirstFile(filename, FindFileData);
if (hFind == INVALID_HANDLE_VALUE)
{
printf ("Invalid File Handle");
}
else
{
while(FindNextFile(hFind,FindFileData))
{
printf(FindFileData.cFileName);
printf("\r\n");
memset(sendbuffer,'\0',1024);
len = filldata(blocknum++,FindFileData.cFileName,strlen(FindFileData.cFileName),sendbuffer,sizeof(sendbuffer));
ret = sendto(serverSock,sendbuffer,len,0,(sockaddr *)destaddr,sizeof(destaddr));
}
len = fillover(blocknum,"Over",4,sendbuffer,sizeof(sendbuffer));
ret = sendto(serverSock,sendbuffer,len,0,(sockaddr *)destaddr,sizeof(destaddr));
FindClose(hFind);
return;
}
}
所在函數(shù)庫為dir.h、dos.h
int chdir(char *path) 使指定的目錄path(如:C:\\WPS)變成當前的工作目錄,成
功返回0
int findfirst(char *pathname,struct ffblk *ffblk,int attrib)查找指定的文件,成功
返回0
pathname為指定的目錄名和文件名,如C:\\WPS\\TXT
ffblk為指定的保存文件信息的一個結(jié)構(gòu),定義如下: struct?ffblk????????????????????????{????????????????????????????????????char?ff_reserved[21];?/*DOS保留字*/?char?ff_attrib;???????/*文件屬性*/??int??ff_ftime;????????/*文件時間*/??int??ff_fdate;????????/*文件日期*/??long?ff_fsize;????????/*文件長度*/??char?ff_name[13];?????/*文件名*/???}??????attrib為文件屬性,由以下字符代表
┃FA_RDONLY 只讀文件┃FA_LABEL 卷標號┃
┃FA_HIDDEN 隱藏文件┃FA_DIREC 目錄 ┃
┃FA_SYSTEM 系統(tǒng)文件┃FA_ARCH 檔案 ┃
例:
struct ffblk ff;
findfirst(*.wps,ff,FA_RDONLY);
int findnext(struct ffblk *ffblk) 取匹配finddirst的文件,成功返回0
void fumerge(char *path,char *drive,char *dir,char *name,char *ext)
此函數(shù)通過盤符drive(C:、A:等),路徑dir(\TC、\BC\LIB等),
文件名name(TC、WPS等),擴展名ext(.EXE、.COM等)組成一個文件名
存與path中.
int fnsplit(char *path,char *drive,char *dir,char *name,char *ext)
此函數(shù)將文件名path分解成盤符drive(C:、A:等),路徑dir(\TC、\BC\LIB等),
文件名name(TC、WPS等),擴展名ext(.EXE、.COM等),并分別存入相應的變量中.
int getcurdir(int drive,char *direc) 此函數(shù)返回指定驅(qū)動器的當前工作目錄名稱
drive 指定的驅(qū)動器(0=當前,1=A,2=B,3=C等)
direc 保存指定驅(qū)動器當前工作路徑的變量 成功返回0
char *getcwd(char *buf,iint n) 此函數(shù)取當前工作目錄并存入buf中,直到n個字
節(jié)長為為止.錯誤返回NULL
int getdisk() 取當前正在使用的驅(qū)動器,返回一個整數(shù)(0=A,1=B,2=C等)
int setdisk(int drive) 設置要使用的驅(qū)動器drive(0=A,1=B,2=C等),
返回可使用驅(qū)動器總數(shù)
int mkdir(char *pathname) 建立一個新的目錄pathname,成功返回0
int rmdir(char *pathname) 刪除一個目錄pathname,成功返回0
char *mktemp(char *template) 構(gòu)造一個當前目錄上沒有的文件名并存于template中
char *searchpath(char *pathname) 利用MSDOS找出文件filename所在路徑,
,此函數(shù)使用DOS的PATH變量,未找到文件返回NULL
system("attrib -s -h"); // 如果需要顯示系統(tǒng)文件和隱藏文件
system("DIR /b file_list.txt"); // 文件名存入 文件 file_list.txt
/b -- 只取 文件名
文章題目:c語言獲取當前目錄函數(shù),c++獲取當前路徑的函數(shù)
網(wǎng)址分享:http://www.chinadenli.net/article40/dseoieo.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、小程序開發(fā)、搜索引擎優(yōu)化、App設計、用戶體驗、外貿(mào)網(wǎng)站建設
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)