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" />以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持。