c 遞迴遍歷資料夾下所有指定字尾的檔案

2021-10-10 06:41:04 字數 1099 閱讀 7675

只在windows下測試通過,linux沒有測試。

string p;

void getfiles(string path, vector& files, string postfix)

else

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

_findclose(hfile);

}}

最前面的 string p;必須在前面,否則就不能返回全路徑。另外postfix == strchr(fileinfo.name, '.')這句話確實起到了過濾字尾名的最用,在這裡string可以和char*作比較。如果是txt檔案strchr(fileinfo.name, '.')返回的是「.txt」。

下面是一套完整**備用:

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

string p;

void getfiles(string path, vector& files, string postfix)

else

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

_findclose(hfile); }}

/** ar**[1]: 資料夾目錄

* ar**[2]: 檔案字尾

*/int main(int argc, char *ar**)

vectorfiles;

//獲取該路徑下的所有jpg檔案

//getfiles(ar**[1], ar**[2], files);

//get_files(ar**[1], ar**[2], files);

getfiles(ar**[1], files, ar**[2]);

ofstream outf;

outf.open("filename.txt");

int size = files.size();

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

return 0;

}

c 遍歷指定資料夾下的所有的檔案

linux include include include include int main int argc,char ar if dp opendir ar 1 null printf can t open s ar 1 while dirp readdir dp null n 50 print...

C 遍歷資料夾下所有檔案

主要用到 finddata t結構體,和 findfirst findnext findclose三個函式。他們都屬於io.h標頭檔案。1 結構體 用來儲存檔案各種資訊 struct finddata t 1 unsigned atrrib 檔案屬性的儲存位置。它儲存乙個unsigned單元,用於表...

遍歷資料夾下所有檔案

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