C 遍歷資料夾下所有檔案

2021-08-22 00:04:48 字數 1790 閱讀 1159

主要用到_finddata_t結構體,和_findfirst、_findnext、_findclose三個函式。

他們都屬於io.h標頭檔案

1、結構體:用來儲存檔案各種資訊

struct _finddata_t ;
(1)unsigned atrrib: 檔案屬性的儲存位置。它儲存乙個unsigned單元,用於表示檔案的屬性。

_a_arch(存檔)

_a_hidden(隱藏)

_a_normal(正常)

_a_rdonly(唯讀)

_a_subdir(資料夾)

_a_system(系統)

之間可以用 | 運算來組合表示乙個檔案的屬性。

接著是三個表示時間的變數:

(2)time_t time_create: 用來儲存檔案建立時間的,time_t 型別本質是就是乙個整型。

(3)time_t time_access: 檔案最後一次被訪問的時間。

(4)time_t time_write: 檔案最後一次被修改的時間。

然後是檔案大小和檔名:

(5)_fsize_t size: 檔案的大小。這裡的_fsize_t是unsigned long型別,表示檔案的位元組數。

(6)char name[260]: 檔案的檔名。

2、三個函式

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

返回值:

如果查詢成功的話,將返回乙個long型的唯一的查詢用的控制代碼(就是乙個唯一編號)。這個控制代碼將在_findnext函式中被使用。若失敗,則返回-1。

引數:filespec:標明檔案的字串,可支援萬用字元。比如:*.c,則表示當前資料夾下的所有字尾為c的檔案。

fileinfo :這裡就是用來存放檔案資訊的結構體的指標。這個結構體必須在呼叫此函式前宣告,不過不用初始化,只要分配了記憶體空間就可以了。

函式成功後,函式會把找到的檔案的資訊放入這個結構體中。

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

返回值:

若成功返回0,否則返回-1。

引數:handle:即由_findfirst函式返回回來的控制代碼。

fileinfo:檔案資訊結構體的指標。找到檔案後,函式將該檔案資訊放入此結構體中。

(3)int _findclose( long handle );

返回值:成功返回0,失敗返回-1。

引數: handle :_findfirst函式返回回來的控制代碼。

3、

#include #include using namespace std;

using namespace cv;

bool get_filelist_from_dir(string path, vector& files)

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

_findclose(hfile);

return true;

} else

return false;

}void main()

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

}

4、

關於intptr_t

_findnext()除錯中斷,發生訪問錯誤,錯誤定位到ntdll.dll

關於c_str()

遍歷資料夾下所有檔案

對於遍歷資料夾來說,其實並不麻煩,使用file轉化位址物件,再用file組獲取內容,其實google都差不多做好了,我就懶得廢話了,直接上 public listlist new arraylist 遍歷所有檔案 public listgetfilelist string path else ret...

C 遍歷資料夾下的所有檔案

資料分多個檔案儲存,讀取資料就需要對多個檔案進行操作。首先就需要定位到檔案的名字,之後再對檔案進行相應的讀寫操作。多次涉及多檔案的讀寫操作,現將這個實現總結一下,方便自己和他人使用。具體 如下 cpp view plain copy include stdafx.h include include ...

shell 遍歷資料夾下所有檔案

linux 下有tree命令可以檢視指定資料夾下的所有檔案 需要安裝tree,ubuntu下sudo apt get install tree 要實現這樣的功能,可以有多種實現方式,指令碼語言就是一種方便快捷的方式,python,shell都可以很容易實現。最近在學習makefile編寫,其中有很多...