C++获取指定目录下的所有文件
2017-06-12 16:32
816 查看
本文实例为大家分享了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)) != -1) { do { // 保存文件的全路径 files.push_back(p.assign(path).append("\\").append(fileinfo.name)); } while (_findnext(hFile, &fileinfo) == 0); //寻找下一个,成功返回0,否则-1 _findclose(hFile); } }
4.测试
int main(int argc, char** argv) { vector<string> temp; getAllFiles("J:\\faces\\test", temp,".jpg"); for (int i = 0; i < temp.size();++i ) { cout << temp[i] << endl; } return 0; }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
相关文章推荐
- C++:获取指定目录下的所有文件
- 获取指定目录下的所有文件
- java获取指定目录下所有文件
- 转:C# 获取指定目录下所有文件信息、移动目录、拷贝目录
- ListView获取指定目录下的所有文件及文件夹
- java 获取指定目录下的所有文件
- MFC获取指定目录下的所有文件函数
- java获取指定目录下所有指定扩展名的文件
- window下获取指定目录下面的所有文件名 c/c++
- C++获取某路径下所有文件名,ifstream打开某路径下的指定文件
- 获取指定目录及其子目录的所有文件(JAVA)
- java获取指定目录下所有文件
- C#Winfrom获取指定目录下所有文件名称和文件名称相应的目录 并且添加到DataTable
- C# 获取指定目录下所有文件信息、移动目录、拷贝目录
- window下获取指定目录下面的所有文件名 c/c++
- C# 获取指定目录下所有文件信息、移动目录、拷贝目录
- C# 获取指定目录下所有文件信息、移动目录、拷贝目录
- C# 获取指定目录下所有文件信息
- [转]C# 获取指定目录下所有文件信息、移动目录、拷贝目录
- 获取指定目录下所有的子目录和文件