VC下遍歷資料夾和檔案

2021-07-16 15:09:26 字數 1641 閱讀 4253

一、先介紹乙個結構win32_find_data

typedef struct _win32_find_data

win32_find_data;

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引數指定的檔名相符的所有檔案

四、下面是遍歷**

#include

#include

#include

using namespace std;

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

find(char * lppath)

}else

if(!findnextfile(hfind,&findfiledata))

break;

}findclose(hfind);}

1.使用網上最普通的方法

find(char * lppath)

}else

if(!findnextfile(hfind,&findfiledata))  break;

}findclose(hfind);

}2.利用cfilefind類較簡潔的實現該功能

void cmodeldlg::findbmpfile(cstring strfoldername)

else

}tempfind.close();

return;}

VC遍歷資料夾下所有檔案和資料夾

2010 03 25 16 59 一 先介紹乙個結構win32 find data typedef struct win32 find data win32 find data win32 find data ffd handle hfind findfirstfile c ffd 二 函式find...

VC遍歷資料夾下所有檔案和資料夾

一 先介紹乙個結構win32 find data typedef struct win32 find data win32 find data 可以通過 findfirstfile 函式,根據檔案路徑把待操作檔案的相關屬性讀取到 win32 find data 結構中去 win32 find dat...

Linux下遞迴遍歷檔案和資料夾

include include include include include include include 利用深度優先遍歷實現檔案檢索 void dfs const char filedir if dirstat.st mode s ifdir else int main int argc,c...