C++獲取指定目錄下的所有文件。本站提示廣大學習愛好者:(C++獲取指定目錄下的所有文件)文章只能為提供參考,不一定能成為您想要的結果。以下是C++獲取指定目錄下的所有文件正文
作者:whlook
這篇文章主要為大家詳細介紹了C++獲取指定目錄下所有文件的相關代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下本文實例為大家分享了C++獲取指定目錄下所有文件的具體代碼,供大家參考,具體內容如下
1.獲得指定目錄下的所有文件(不搜索子文件夾)
需要包含的頭文件
#include <io.h> #include <string> #include <vector> #include <fstream>
函數實現
void getAllFiles(string path, vector<string>& files) { // 文件句柄 long hFile = 0; // 文件信息 struct _finddata_t fileinfo; string p; if ((hFile = _findfirst(p.assign(path).append("\\*").c_str(), &fileinfo)) != -1) { do { // 保存文件的全路徑 files.push_back(p.assign(path).append("\\").append(fileinfo.name)); } while (_findnext(hFile, &fileinfo) == 0); //尋找下一個,成功返回0,否則-1 _findclose(hFile); } }
2.獲取指定目錄下的所有文件(搜索子文件夾)
void getAllFiles(string path, vector<string>& files) { //文件句柄 long hFile = 0; //文件信息 struct _finddata_t fileinfo; string p; if ((hFile = _findfirst(p.assign(path).append("\\*").c_str(), &fileinfo)) != -1) { do { if ((fileinfo.attrib & _A_SUBDIR)) { //比較文件類型是否是文件夾 if (strcmp(fileinfo.name, ".") != 0 && strcmp(fileinfo.name, "..") != 0) { files.push_back(p.assign(path).append("\\").append(fileinfo.name)); //遞歸搜索 getAllFiles(p.assign(path).append("\\").append(fileinfo.name), files); } } else { files.push_back(p.assign(path).append("\\").append(fileinfo.name)); } } while (_findnext(hFile, &fileinfo) == 0); //尋找下一個,成功返回0,否則-1 _findclose(hFile); } }
3.獲取指定格式的文件(不搜索子文件夾)
/* path: 指定目錄 files: 保存結果 fileType: 指定的文件格式,如 .jpg" />以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持。