C++获取指定目录下的所有文件
发布时间:2020-12-16 05:09:12 所属栏目:百科 来源:网络整理
导读:本文实例为大家分享了C++获取指定目录下所有文件的具体代码,供大家参考,具体内容如下 1.获得指定目录下的所有文件(不搜索子文件夹) 需要包含的头文件 #include io.h#include string#include vector#include fstream 函数实现 void getAllFiles(string pa
本文实例为大家分享了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 */ void getAllFiles(string path,vector<string>& files,string fileType) { // 文件句柄 long hFile = 0; // 文件信息 struct _finddata_t fileinfo; string p; if ((hFile = _findfirst(p.assign(path).append("*" + fileType).c_str(),&fileinfo) == 0); //寻找下一个,成功返回0,否则-1 _findclose(hFile); } } 4.测试 int main(int argc,char** argv) { vector<string> temp; getAllFiles("J:facestest",temp,".jpg"); for (int i = 0; i < temp.size();++i ) { cout << temp[i] << endl; } return 0; } 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |