C 獲取資料夾下的所有檔名

2021-10-08 06:30:49 字數 1646 閱讀 6453

之前導師給了自己乙個任務,需要獲取乙個目錄下的所有檔名,所有就查詢了相關的操作,並進行總結。

對於獲取某個目錄下的所有檔名,在linux系統和window系統中的操作是不同的,下面分別從兩個系統進行介紹。

struct _finddata_t

;

函式_findnext()

函式_findclose()

整個過程:先用_findfirst查詢第乙個檔案,若成功則用返回的控制代碼呼叫_findnext函式查詢其他的檔案,當查詢完畢後用,用_findclose函式結束查詢。

**:

#include #include const char *to_search="c:\\windows\\*.exe";        //欲查詢的檔案,支援萬用字元

int main()

long handle; //用於查詢的控制代碼

struct _finddata_t fileinfo; //檔案資訊的結構體

handle=_findfirst(to_search,&fileinfo); //第一次查詢

if(-1==handle) return -1;

printf("%s\n",fileinfo.name); //列印出找到的檔案的檔名

while(!_findnext(handle,&fileinfo)) //迴圈查詢其他符合的檔案,知道找不到其他的為止

_findclose(handle); //別忘了關閉控制代碼

system("pause");

return 0;

}

vectorfiles;  

獲取該路徑下的所有檔案

getfiles(filepath, files );

char str[30];

int size = files.size();

for (int i = 0;i < size;i++)

else

}while(_findnext(hfile, &fileinfo) == 0);

_findclose(hfile);

} }

函式readdir()

dirent結構體

struct dirent ;
unsigned char d_type,檔案或目錄的型別。它有可能的取值如下:

dt_unknown,未知的型別

dt_reg,普通檔案

dt_dir,普通目錄

dt_fifo,命名管道或fifo

dt_sock,本地套介面

dt_chr,字元裝置檔案

dt_blk,塊裝置檔案

操作步驟:

**:

#include #include #include int main(int argc,char **ar**);

if((dirp = opendir(ar**[1])) == null)

while((dir_entry = readdir(dirp)) != null)

closedir(dirp);

}

C 獲取資料夾下所有檔名

查詢檔案需要乙個結構體和幾個函式。結構體為struct finddata t,函式為 findfirst findnext和 findclose。struct finddata t 這個結構體是用來儲存檔案各種資訊的。定義如下 struct finddata t 其中各成員變數的含義如下 unsig...

C 獲取資料夾下所有檔名

1.實現 1 2 author codingmengmeng 3 theme 獲取指定資料夾下的所有檔名 4 time 2017 1 13 11 46 22 5 blog 7 include 8 include 9 include 10 using namespace std 1112 void g...

獲取資料夾下所有檔名

有時我們想要把乙個資料夾中的所有檔名整理到乙個execl檔案中,便於管理和查詢以及列印,多數是使用 複製 貼上 方法 將資料夾中的檔案重新命名,在可編輯狀態下進行複製,而後在其他文件中貼上 這種辦法可行,但對於資料夾中有大量的檔案的情況,則工作效率低,而且做完後必須核對。利用dos的重定向命令 可方...