WIN32 C 遍歷資料夾

2021-08-25 16:21:52 字數 1805 閱讀 9766

**:

一、先介紹乙個結構 win32_find_data

typedef struct _win32_find_data

dword dwfileattributes; // 檔案屬性

filetime ftcreationtime; // 檔案建立時間

filetime ftlastaccesstime; // 檔案最後一次訪問時間

filetime ftlastwritetime; // 檔案最後一次修改時間

dword nfilesizehigh; // 檔案長度高 32 位

dword nfilesizelow; // 檔案長度低 32 位

dword dwreserved0; // 系統保留

dword dwreserved1; // 系統保留

tchar cfilename[ max_path ]; // 長檔名

tchar calternatefilename[ 14 ]; // 檔案的可選名

} win32_find_data;

四、下面是遍歷**

#include

#include

#include

using namespace std;

//只能處理目錄:lppath只能是路徑

void find(char *lppath)

}else

win32_find_data ffd;

handle hfind = findfirstfile("c:",&ffd);

二、函式 findfirstfile

1 、宣告 : handle findfirstfile(lpctstr lpfilename,lpwin32_find_data lpfindfiledata);

2 、引數 :

lpfilename string ,欲搜尋的檔名。可包含萬用字元,並可包含乙個路徑或相對路徑名

lpfindfiledata win32_find_data ,乙個 win32_find_data 指標, 用於裝載與找到的檔案有關的資訊,該結構可用於後續的搜尋

3 、返回值 :

如執行成功,返回乙個搜尋控制代碼。如果出錯,返回乙個 invalid_handle_value 常數,一旦不再需要,應該用 findclose 函式關閉這個控制代碼

4 、功能

讀取檔案資訊到乙個 win32_find_data 結構中,返回這個檔案的控制代碼

5 、注釋:

由這個函式返回的控制代碼可以作為乙個引數用於 findnextfile 函式。這樣一來,就可以方便的列舉出與 lpfilename 引數指定的檔名相符的所有檔案(是指檔名含有萬用字元)

三、函式 findnextfile

1 、宣告 bool findnextfile(handle hfindfile, lpwin32_find_data lpfindfiledata);

2 、引數 :

handle hfindfile 搜尋的檔案控制代碼,函式執行的時候搜尋的是此控制代碼的下一檔案

lpwin32_find_data lpfindfiledata 乙個 win32_find_data 指標,

3 、返回值 :

如果呼叫成功返回乙個非 0 值;呼叫失敗,返回為 0 ,可呼叫 getlasterror 來獲取錯誤資訊

4 、功能

繼續查詢 findfirstfile 函式搜尋後的檔案

5 、注釋:

這個函式可以連續呼叫,以方便的列舉出與 lpfilename 引數指定的檔名相符的所有檔案

其它參考文獻:

WIN32 C 遍歷資料夾

一 先介紹乙個結構 win32 find data typedef struct win32 find data dword dwfileattributes 檔案屬性 filetime ftcreationtime 檔案建立時間 filetime ftlastaccesstime 檔案最後一次訪問...

c 遍歷資料夾深度 C 遍歷資料夾獲取資料夾大小

c 遍歷資料夾獲取資料夾大小 都需要引入system.io這個命名空間 第一種方法 public static long getdirectorylength string dirpath 判斷給定的路徑是否存在,如果不存在則退出 if directory.exists dirpath return...

C 遍歷資料夾

下面是一段用於遍歷資料夾內的指定型別檔案的程式 c 遍歷資料夾 author www.icvpr.com blog include include include using namespace std int main int argc,char argv 2.迴圈查詢 do sprintf fi...