遍歷乙個資料夾所有檔案

2022-06-10 22:21:18 字數 2049 閱讀 7958

標籤: c++

舉報分類:c++(41)

本文利用findfirstfile(),findnextfile()函式歷遍指定目錄的所有檔案,最基礎的歷遍所有檔案。一下**尚無法解決檔名為中文時的亂碼問題,以及無法分別無字尾的檔名和資料夾名的區別。

findfirstfile()用於獲得指定目錄的第乙個檔案。其原型為:

lpfilename 用於指定搜尋目錄和檔案型別,可以用萬用字元,初次使用需要注意 \ 需要用轉義字元表達。即:d:\\c++ 6.0\\;

lpfindfiledata 用於儲存搜尋得到的檔案資訊。

findfirstfile() 返回handle型別,為下一次搜尋提供資訊。當搜尋失敗時,返回invalid_handle_value

[cpp]view plain

copy

handle winapi findfirstfile(  

_in_   lpctstr lpfilename,  

_out_  lpwin32_find_data lpfindfiledata  

);  

findnextfile() 顧名思義,用於搜尋下乙個檔案,當不存在下乙個檔案,即搜尋完畢後,返回false;

[cpp]view plain

copy

bool winapi findnextfile(  

_in_   handle hfindfile,  

_out_  lpwin32_find_data lpfindfiledata  

);  

hfindfile 上一次findfirstfile或findnextfile得到的handle;

lpfindfiledata 用於儲存搜尋得到的檔案資訊。

lpfindfiledata用於獲取檔案資訊。通常,最初的兩次搜尋得到的檔名為:"." 、"..",分別代表當前目錄和上級目錄。寫**時需要注意。

[cpp]view plain

copy

handle hfile;  

lpctstr lpfilename = l".\\*.*"; //指定搜尋目錄和檔案型別,如搜尋d盤的音訊檔案可以是"d:\\*.***"  

win32_find_data pnextinfo;  //搜尋得到的檔案資訊將儲存在pnextinfo中;  

hfile = findfirstfile(lpfilename,&pnextinfo);//請注意是 &pnextinfo , 不是 pnextinfo;  

if(hfile == invalid_handle_value)  

while(findnextfile(hfile,&pnextinfo))  

標頭檔案 #include

[cpp]view plain

copy

handle file;  

lpctstr lpfilename="浙江黃大豆\\*.*";  

得到資料夾(黑豆)中的所有.jpg結尾的檔案

[cpp]view plain

copy

void findfile(void)  

cout<

int count=1;  

while (findnextfile(file, &pnextinfo))    

cout<

乙個遍歷所有資料夾的例子

只是給出那個最核心的函式,他只是對資料夾感興趣。bool enumdirectory tchar dirpath win32 find data fd tchar sztempfilefind max path bool bisfinish false zeromemory fd,sizeof wi...

PHP遍歷乙個資料夾下所有檔案和子資料夾的函式

主要運用了遞迴的思想和scandir 獲取子目錄函式,其它的不說了,直接上 獲取目錄中所有檔案的路徑 param dir return array function my scandir dir else return files else opendir 開啟指定目錄,接受乙個目錄的路徑及目錄名作...

c 遍歷乙個資料夾下的所有檔案包括子資料夾

using system using system.io class listallfilesdemo catch ioexception e public static void listfiles filesysteminfo info c 中遍歷目錄下的目錄的檔案 二 1 遍歷乙個目錄下的全部...