成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

c語言查文件夾目錄的函數(shù) c語言獲取當前目錄下的文件

怎樣使用C語言列出某個目錄下的文件?

用C語言列出目錄下的文件,在linux下可采用readdir()函數(shù)來實現(xiàn),代碼實現(xiàn)過程為:

十年的船營網(wǎng)站建設經(jīng)驗,針對設計、前端、開發(fā)、售后、文案、推廣等六對一服務,響應快,48小時及時工作處理。全網(wǎng)整合營銷推廣的優(yōu)勢是能夠根據(jù)用戶設備顯示端的尺寸不同,自動調(diào)整船營建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)從事“船營網(wǎng)站設計”,“船營網(wǎng)站推廣”以來,每個客戶項目都認真落實執(zhí)行。

打開目錄

循環(huán)讀目錄,輸出目錄下文件

關(guān)閉目錄指針

參考代碼:

#include?dirent.h

#include?stdio.h

int?main()

{

DIR?*dirp;?

struct?dirent?*dp;

dirp?=?opendir(".");?//打開目錄指針

while?((dp?=?readdir(dirp))?!=?NULL)?{?//通過目錄指針讀目錄

printf("%s\n",?dp-d_name?);

}??????

(void)?closedir(dirp);?//關(guān)閉目錄

return?0;

}

在windows下,代碼如下:

#include?io.h

#include?stdio.h

void?printDir(?const?char*?path?)

{

struct?_finddata_t?data;

long?hnd?=?_findfirst(?path,?data?);????//?查找文件名與正則表達式chRE的匹配第一個文件

if?(?hnd??0?)

{

perror(?path?);

}

int??nRet?=?(hnd?0?)???-1?:?1;

while?(?nRet?=?0?)

{

if?(?data.attrib?==?_A_SUBDIR?)??//?如果是目錄

printf("???[%s]*\n",?data.name?);

else

printf("???[%s]\n",?data.name?);

nRet?=?_findnext(?hnd,?data?);

}

_findclose(?hnd?);?????//?關(guān)閉當前句柄

}

void?main()

{

printDir("d:/*.*");

}

相關(guān)函數(shù)說明:

long?_findfirst(?char?*filespec,?struct?_finddata_t?*fileinfo?);??

//?功??能?:?提供與filespec指定入口泛式匹配的第一個文件.通常后繼用_findnext()函數(shù)來完成某泛式下的文件遍歷.??

//?頭文件?:?#include?io.h??

//?參??數(shù)?:?filespec?-?目標文件規(guī)范,可以包含通配符??

//??????????fileinfo?-?文件信息buffer??

//?返回值?:?成功返回唯一的搜索句柄??

//??????????出錯返回-1,且設置errno為如下值:??

//??????????ENOENT?該泛式無法匹配??

//??????????EINVAL?無效文件名??

int?_findnext(?long?handle,?struct?_finddata_t?*fileinfo?);??

//?功??能?:?按照前面_findfirst中的泛式規(guī)則,查找下一個符合該泛式的文件,并以此為依據(jù)修改fileinfo中的值??

//?頭文件?:?#include?io.h??

//?參??數(shù)?:?long?handle?-?搜索句柄(通常由緊靠其前的_findfirst()返回)??

//??????????fileinfo????-?文件信息buffer??

//?返回值?:?成功返回0??

//??????????出錯返回-1

int?_findclose(?long?handle?);??

//?功??能?:?關(guān)閉搜尋句柄并釋放相應資源??

//?頭文件?:?#include?io.h??

//?參??數(shù)?:?long?handle?-?搜索句柄(通常由緊靠其前的_findfirst()返回)??

//?返回值?:?成功返回0??

//??????????出錯返回-1

C語言查文件夾目錄的函數(shù)請問C語言有什么查文件夾目

opendir

加上

finddir

這兩個函數(shù) 可以遍歷一個文件夾下面的所有文件節(jié)點

根據(jù)節(jié)點屬性 可以判斷是文件 還是文件夾。

具體用法 自行百度。 很多選項

VC環(huán)境中用C語言查找當前路徑下的所有文件和文件夾的函數(shù)是什么?

這是我的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;

}

}

C語言遍歷目錄中的文件

使用dir.h庫的兩個函數(shù)即可:findfirst和findnext。

首先調(diào)用findfirst函數(shù)查找是否有滿足條件的某目錄文件,如果返回值非0則表示找不到返回。

如果findfirst返回值為0,則循環(huán)調(diào)用findnext函數(shù),根據(jù)返回值,如果為0,結(jié)束循環(huán),遍歷結(jié)束。否則循環(huán)調(diào)用findnext即可遍歷,直到返回非0值即可。

當然,這兩個函數(shù)需要定義一個結(jié)構(gòu)體來存儲函數(shù)返回的數(shù)據(jù)。結(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];

/*文件名*/

}

將結(jié)構(gòu)體中的ff_name[13]顯示出來即可。

C語言函數(shù)的目錄函數(shù)

所在函數(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

本文題目:c語言查文件夾目錄的函數(shù) c語言獲取當前目錄下的文件
當前地址:http://jinyejixie.com/article8/dochsop.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈虛擬主機、微信小程序用戶體驗、響應式網(wǎng)站、外貿(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)

營銷型網(wǎng)站建設
安丘市| 龙山县| 津南区| 正蓝旗| 尼玛县| 新余市| 舞钢市| 贵港市| 大埔县| 广元市| 朝阳市| 鸡东县| 五家渠市| 五台县| 遵化市| 正定县| 札达县| 涪陵区| 犍为县| 黎川县| 高尔夫| 桂平市| 云和县| 堆龙德庆县| 广宗县| 荔波县| 湘潭县| 新巴尔虎左旗| 城市| 利川市| 乌恰县| 彰武县| 修水县| 上饶县| 磐安县| 海阳市| 濮阳县| 惠安县| 韶关市| 龙南县| 梨树县|