所在函數(shù)庫為dir.h、dos.h
創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供泉港網(wǎng)站建設(shè)、泉港做網(wǎng)站、泉港網(wǎng)站設(shè)計、泉港網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、泉港企業(yè)網(wǎng)站模板建站服務(wù),10余年泉港做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。
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等),并分別存入相應(yīng)的變量中.
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) 設(shè)置要使用的驅(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
我不知道樓主具體指的是什么?什么叫取得目錄中的函數(shù)名?是指文件名嗎?
如果是的話,看這個程序:
#include
process.h
main()
{
clrscr();
system("dir
e:\\younger");
/*"e:\\younger"可以改成任意目錄*/
getch();
}這樣可以嗎,樓主?
在命令提示符窗口運行:findfile (盤符):\ *.(文件后綴)
如:[sourcecode language=”plain”]findfile d:\ *.txt [/sourcecode]
即為找出d盤根目錄下的所有.txt后綴的文件并寫入文件路徑于文件中。
這是我的TFTP程序中的一個函數(shù),是搜索當前盤符下的所有文件,包括文件的大小,并發(fā)送到客戶端,其中就有查找當前路徑下的文件,你自己挑一下,應(yīng)該能完成你的需求。
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;
}
}
1、可以利用getenv函數(shù)來實現(xiàn)。
在Linux系統(tǒng)中,home目錄的定義是通過系統(tǒng)環(huán)境變量中的HOME變量值來確定的,在shell下可以通過
echo $HOME來查看。
而在C語言中,庫函數(shù)getenv可以用作獲取環(huán)境變量值。該函數(shù)位于stdlib.h, 原型為
char *getenv(char *name);
功能為獲取名字為name的環(huán)境變量字符串。
所以,下面代碼就可以獲取到home目錄名了:
2、例程:
char *home;
home = getenv("HOME");
printf("the home path is %s\n", home);
不過,利用C語言的幾個目錄函數(shù),你可以自己編寫一個dir_list()函數(shù)。
首先,頭文件dos.h定義了一個find_t結(jié)構(gòu),它可以描述DOS下的文件信息,包括文件名、時間、日期、大小和屬性。其次,C編譯程序庫中有_dos_findfirst()和_dos_findnext()這樣兩個函數(shù),利用它們可以找到某個目錄下符合查找要求的第一個或下一個文件。
dos_findfirst()函數(shù)有三個參數(shù),第一個參數(shù)指明要查找的文件名,例如你可以用“*.*”指明要查找某個目錄下的所有文件。第二個參數(shù)指明要查找的文件屬性,例如你可以指明只查找隱含文件或子目錄。第三個參數(shù)是指向一個find_t變量的指針,查找到的文件的有關(guān)信息將存放到該變量中。
dos_findnext()函數(shù)在相應(yīng)的目錄中繼續(xù)查找由_dos_findfirst()函數(shù)的第一個參數(shù)指明的文件。_dos_findnext()函數(shù)只有一個參數(shù),它同樣是指向一個find_t變量的指針,查找到剛文件的有關(guān)信息同樣將存放到該變量中。