C++实现读取特定路径下文件夹及文件名的方法
发布时间:2020-12-15 00:56:38 所属栏目:C语言 来源:网络整理
导读:本文所述实例代码主要实现读取给定路径下的所有文件夹名称或所有带后缀的文件名的功能。具体解决方法如下: 主要用到了以下几个头文件(类):io.h,fstream,string。 首先,读取某给定路径下所有文件夹与文件名称,并带完整路径。实现代码如下: void getAllFi
本文所述实例代码主要实现读取给定路径下的所有文件夹名称或所有带后缀的文件名的功能。具体解决方法如下: 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) ); 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类型,引用传递)。 char * filePath = "E:YunShi"; vector<string> files; char * distAll = "AllFiles.txt"; getFilesall(filePath,files); ofstream ofn(distAll); int size = files.size(); ofn<<size<<endl; for (int i = 0;i<size;i++) { ofn<<files[i]<<endl; } ofn.close(); 同理,只读取某给定路径下的当前文件夹名(以下类似,只给出函数,调用案例同上): void getJustCurrentDir( string path,vector<string>& files) { //文件句柄 long hFile = 0; //文件信息 struct _finddata_t fileinfo; string p; if((hFile = _findfirst(p.assign(path).append("*").c_str(),"..") != 0) { files.push_back(fileinfo.name); //files.push_back(p.assign(path).append("").append(fileinfo.name) ); } } }while(_findnext(hFile,&fileinfo) == 0); _findclose(hFile); } } 只读取某给定路径下的当前文件名: void getJustCurrentFile( string path,&fileinfo)) != -1) { do { if((fileinfo.attrib & _A_SUBDIR)) { ; } else { files.push_back(fileinfo.name); //files.push_back(p.assign(path).append("").append(fileinfo.name) ); } }while(_findnext(hFile,&fileinfo) == 0); _findclose(hFile); } } 只读取某给定路径下的所有文件名(即包含当前目录及子目录的文件): void getFilesAll( string path,"..") != 0) { //files.push_back(p.assign(path).append("").append(fileinfo.name) ); getFilesA( p.assign(path).append("").append(fileinfo.name),&fileinfo) == 0); _findclose(hFile); } } 您可能感兴趣的文章:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |