使用C++获取文件夹中所有文件名(windows环境)
来源:互联网 发布:charindex函数 sql 编辑:程序博客网 时间:2024/06/06 20:59
由于经常有读取一个文件夹中的很多随机编号的文件,很多时候需要读取某些特定格式的所有文件。
下面的代码可以读取指定文件家中的所有文件和文件夹中格式为jpg的文件
参考:http://www.2cto.com/kf/201407/316515.html
windows平台代码:
#if 1#include <io.h> #include <fstream> #include <string> #include <vector> #include <iostream> using namespace std; //获取所有的文件名 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); _findclose(hFile); } } //获取特定格式的文件名 void GetAllFormatFiles( string path, vector<string>& files,string format) { //文件句柄 long hFile = 0; //文件信息 struct _finddata_t fileinfo; string p; if((hFile = _findfirst(p.assign(path).append("\\*" + format).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) ); GetAllFormatFiles( p.assign(path).append("\\").append(fileinfo.name), files,format); } } else { 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:\\projects\\WSD\\EBI\\samples\\2013WSD\\BottleBottom\\"; vector<string> files; char * distAll = "AllFiles.txt"; //读取所有的文件,包括子文件的文件 //GetAllFiles(filePath, files); //读取所有格式为jpg的文件 string format = ".bmp"; GetAllFormatFiles(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(); return 0; } #endif
阅读全文
0 0
- 使用C++获取文件夹中所有文件名(windows环境)
- 使用C++获取文件夹中所有文件名(windows环境)
- 使用C++获取文件夹中所有文件名(windows环境)
- 使用C++获取文件夹中所有文件名
- 提取文件夹中所有文件名(Windows)
- Windows下C获取文件夹下所有文件名
- Windows下获取文件夹中特定后缀的所有文件名
- C++中获取一个文件夹下所有文件名(转)
- 获取文件夹中所有文件的文件名
- C/C++ 获取文件夹下所有文件名 windows和linux通用
- windows下获取文件夹下的所有文件名
- C语言获取文件夹内所有文件名并打印到txt中
- 获取文件夹下所有文件名
- Linux下C获取文件夹下所有文件名
- java中获取指定文件夹下所有文件名
- Java获取文件夹下所有文件文件名写入文件中
- 利用python.os.listdir获取文件夹中所有文件名
- 利用C/C++编写程序以获取文件夹内所有子文件名,windows和Linux两个版本都有
- 用来查看插件自带函数的神技
- Paxos的工程实践之Hypertable。
- u-boot主要数据结构-- bd
- checkbox全选/全不选只有第一次点击的时候有效,后面点击全部无效了
- log4j.properties配置详解与实例
- 使用C++获取文件夹中所有文件名(windows环境)
- keil使用遇到的问题
- nodejs基础教程-简单blog(1)
- 使用javaMail发送邮件
- php关注微信服务号回复
- 4K如此成熟,8K开始布局,8K视频质量测试,对硬件要求更高!欢迎交流8K
- linux(CentOS) 下mysql自动定时备份
- iOS代码块Block
- Word2Vec的相关知识