当前位置: 编程技术>c/c++/嵌入式
C++实现读取特定路径下文件夹及文件名的方法
来源: 互联网 发布时间:2014-10-25
本文导语: 本文所述实例代码主要实现读取给定路径下的所有文件夹名称或所有带后缀的文件名的功能。具体解决方法如下: 主要用到了以下几个头文件(类):io.h, fstream, string。 首先,读取某给定路径下所有文件夹与文件名称,...
本文所述实例代码主要实现读取给定路径下的所有文件夹名称或所有带后缀的文件名的功能。具体解决方法如下:
主要用到了以下几个头文件(类):io.h, fstream, string。
首先,读取某给定路径下所有文件夹与文件名称,并带完整路径。实现代码如下:
void getAllFiles( string path, vector& 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) ); getFilesall( 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); } }
该函数有两个参数,第一个为路径字符串(string类型,最好为绝对路径);第二个参数为文件夹与文件名称存储变量(vector类型,引用传递)。
在主函数中调用格式(并将结果保存在文件"AllFiles.txt"中,第一行为总数):
char * filePath = "E:\YunShi"; vector files; char * distAll = "AllFiles.txt"; getFilesall(filePath, files); ofstream ofn(distAll); int size = files.size(); ofn