C++从某个目录中找出某一类型的所有文件
来源:互联网 发布:巴顿比格斯 知乎 编辑:程序博客网 时间:2024/05/22 00:28
因为需要除了某个路径下的所有图片,因此通过网络搜索等方法完成了这段代码。
#include <io.h> #include <fstream> #include <string> #include <vector> #include <iostream> using namespace std; //获取所有的文件名 void GetAllFiles( string path, vector<string>& files, string format ) { long hFile = 0; //文件信息 struct _finddata_t fileinfo;//用来存储文件信息的结构体 int len = format.length(); string p,temp; 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,format ); } } else //如果查找到的不是是文件夹 { //files.push_back(p.assign(fileinfo.name) ); //将文件路径保存,也可以只保存文件名: p.assign(path).append("\\").append(fileinfo.name) temp = fileinfo.name;//判断字符串是否以format格式结尾if(temp.length()>len && temp.compare(temp.length()-len,len,format)==0)files.push_back(p.assign(path).append("\\").append(fileinfo.name) ); } }while(_findnext(hFile, &fileinfo) == 0); _findclose(hFile); //结束查找 } } // 该函数有两个参数,第一个为路径字符串(string类型,最好为绝对路径); // 第二个参数为文件夹与文件名称存储变量(vector类型,引用传递)。 // 在主函数中调用格式(并将结果保存在文件"AllFiles.txt"中,第一行为总数): int main() { string filePath = "D:\\images"; vector<string> files; char * distAll = "AllFiles.txt"; //读取所有的文件,包括子文件的文件 //GetAllFiles(filePath, files); //读取所有格式为jpg的文件 string format = ".jpg"; //GetAllFormatFiles(filePath, files,format); GetAllFiles(filePath, files,format); ofstream ofn(distAll); int size = files.size(); ofn<<size<<endl; for (int i = 0;i<size;i++) { ofn<<files[i]<<endl; // 写入文件 cout<< files[i] << endl;//输出到屏幕 } ofn.close(); system("pause"); return 0; }由于之前很少用C++,在修改代码的过程中遇到了一些问题,特别是判断某个文件是不是某个类型时,用到了字符串的操作,如果有更好的,希望在评论区能留下,谢谢。
参考的文章:http://blog.csdn.net/u013094443/article/details/48896703
0 0
- C++从某个目录中找出某一类型的所有文件
- Java-读取某个目录下所有文件、文件夹和3种从文件路径中获取文件名的方法
- 复制某一目录下的所有文件
- 在某个目录下的所有文件的内容中,查找包含某个字符串的文件
- 找出目录下的包含某一字符串的文件
- C#找出字符串中某一字符的所有位置
- 列出某个目录下的所有文件
- 获取某个目录下所有的文件
- 在某个目录下的所有文件中查找包含某个字符串的Windows命令
- 在某个目录下的所有文件中查找包含某个字符串的Windows命令
- 在某个目录下的所有文件中查找包含某个字符串的Windows命令
- 从某个目录中筛选文件
- Windows 在某个目录下的所有文件中查找包含某个字符串
- 迭代某一目录下的所有目录及文件
- C#——找出实现某个接口的所有类
- 在一个目录及其所有子目录下所有的文件中查找某个单词
- 找出二叉树中某个值的所有路径
- 找出二叉树中某个节点的所有祖先节点
- Intent详解
- Andrew Ng coursera上的《机器学习》ex8
- android studio升级后的各种错误解决
- 生成随机验证码
- 左侧菜单,点击右侧弹出内容
- C++从某个目录中找出某一类型的所有文件
- Servlet文件的下载
- PL/SQL【32位】连接Oracle 11g【64位】终于成功了!!!
- XCODE 添加调试真机
- 数据结构基本术语及其关系图
- 在Ueditor 1.4.3中自定义插件
- TCP/IP详解学习笔记
- 数据库杂谈之-MySQL延时复制库
- 电脑可安装的超炫实用软件