c++遍历文件夹里面的所有文件(1)
2015-01-14 23:03
344 查看
简介
下面的代码可以遍历文件夹里的所有文件。缺点是不能查找指定后缀的文件。
如果文件夹的深度只有1层,是可以查找指定后缀的文件的。
否则,一旦文件夹里嵌套文件夹,就不可以指定后缀了。这也是这个代码的局限
欢迎登陆我的个人主页,hello2019,查看原文:http://richardliu.cn/
下面的代码可以遍历文件夹里的所有文件。缺点是不能查找指定后缀的文件。
如果文件夹的深度只有1层,是可以查找指定后缀的文件的。
否则,一旦文件夹里嵌套文件夹,就不可以指定后缀了。这也是这个代码的局限
#include <string> #include <io.h> #include <vector> #include <iostream> using namespace std; /************************************************************************/ /* 获取文件夹下所有文件名 输入: path : 文件夹路径 exd : 所要获取的文件名后缀,如jpg、png等;如果希望获取所有 文件名, exd = "" 输出: files : 获取的文件名列表 shao, 20140707 */ /************************************************************************/ void getFiles( string path, string exd, vector<string>& files ) { //文件句柄 long hFile = 0; //文件信息 struct _finddata_t fileinfo; string pathName, exdName; if (0 != strcmp(exd.c_str(), "")) { exdName = "\\*." + exd; } else { exdName = "\\*"; } if((hFile = _findfirst(pathName.assign(path).append(exdName).c_str(),&fileinfo)) != -1) { do { //如果是文件夹中仍有文件夹,迭代之 //如果不是,加入列表 if((fileinfo.attrib & _A_SUBDIR)) { if(strcmp(fileinfo.name,".") != 0 && strcmp(fileinfo.name,"..") != 0) getFiles( pathName.assign(path).append("\\").append(fileinfo.name), exd, files ); } else { if(strcmp(fileinfo.name,".") != 0 && strcmp(fileinfo.name,"..") != 0) files.push_back(pathName.assign(path).append("\\").append(fileinfo.name)); } }while(_findnext(hFile, &fileinfo) == 0); _findclose(hFile); } } void main() { char * filePath = "D:\\New Work\\test\\img"; vector<string> files; //获取该路径下的所有jpg文件 getFiles(filePath, "jpg", files); int size = files.size(); for (int i = 0;i < size;i++) { cout<<files[i].c_str()<<endl; } }
欢迎登陆我的个人主页,hello2019,查看原文:http://richardliu.cn/
相关文章推荐
- c++遍历文件夹下所有文件
- c++遍历指定文件夹下的所有的文件
- C++遍历文件夹下的所有文件
- C++ 遍历文件夹中的所有文件
- C++遍历文件夹下的所有文件
- c++ 遍历文件夹所有文件
- C++遍历文件夹下的所有文件
- C++ 遍历文件夹下所有的文件
- C++遍历文件夹下的所有文件
- C++遍历文件夹下的所有文件夹及文件
- C++遍历文件夹下所有文件
- [C/C++] WIN_遍历文件夹下所有文件和文件夹VC
- c++遍历查找文件夹路径下的所有文件(比如.txt) 使用的是MFC的CFileFind类
- C/C++遍历Windows文件夹下的所有文件
- c++遍历指定文件夹下的所有的文件
- Android:复制Assets下所有的文件(遍历每一个文件夹),并存入sdcard里面
- c++ 循环遍历文件夹下的所有文件
- C++ 遍历文件夹下面所有文件
- windows下用c++和python遍历目录下的文件夹并删除所有文件名为xx的文件
- java遍历文件夹里面的所有文件