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

2021-08-17 10:37:12 字數 1860 閱讀 2273

c++ 獲取資料夾下的所有檔名

一、使用以下的結構體和函式

1.

_finddata_t的使用  

包含於io.h中,

包含以下屬性

unsigned atrrib:檔案屬性,包含:_a_arch(存檔)、_a_hidden(隱藏)、_a_normal(正常)、_a_rdonly(唯讀)、_a_subdir(資料夾)、_a_system(系統)。

time_t time_create:檔案建立時間

time_t time_access檔案最後一次被訪問的時間。

time_t time_write檔案最後一次被修改的時間。

_fsize_t size

:檔案大小

char name[_max_fname]

檔案的檔名。

2.

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

filespec :檔案型別,如*.c,表示當前資料夾下所有字尾為c的檔案

fileinfo:存放檔案資訊的指標,需要提前申明,分配記憶體空間,無需初始化,成功後,將檔案資訊放入此結構體。

返回值:查詢成功,將返回乙個控制代碼,在_findnext函式中使用,失敗返回-1。

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

成功返回0,識別返回-1。

handle:_findfirst返回的控制代碼

fileinfo:查詢檔案成功後儲存檔案資訊

4. int _findclose( long handle );

關閉檔案控制代碼

使用_findfirst函式查詢目錄下的第乙個檔案,如果存在,返回控制代碼

使用_findnext函式不斷查詢下乙個檔案直到結束

最後使用_findclose關閉控制代碼

#include #include #include #include using namespace std;

//獲取特定格式的檔名

void getallfiles(string path, vector& files,string format)

}else

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

_findclose(hfile); }}

int main()

{ string filepath = "c:\\users\\gl\\desktop\\voc_test\\voc_test\\";

vectorfiles;

string format = ""; //查詢檔案的格式

getallfiles(filepath, files,format);

int size = files.size();

for (int i = 0; i

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的重定向命令 可方...