介绍
本篇文章为大家展示了如何在c++中获取指定目录中的所有文件,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
1。获得指定目录下的所有文件(不搜索子文件夹)
需要包含的头文件
# include & lt; io.h> # include & lt; string> # include & lt; vector> # include & lt; fstream>
函数实现
void getAllFiles (string 路径,vector,,文件), {//,才能文件句柄 long 才能;hFile =, 0;//,才能文件信息 struct 才能;_finddata_t  fileinfo;, string 才能;p; if 才能;((hFile =, _findfirst (p.assign(路径).append (“\ \ *”) .c_str (),,, fileinfo)), !=, 1), { ,,,do { ,,,,,//,保存文件的全路径 ,,,,,files.push_back (p.assign(路径).append (“\ \”) .append (fileinfo.name)); ,,,,,},while (_findnext (hFile,,, fileinfo),==, 0),,//寻找下一个,成功返回0,否则1 ,,,_findclose (hFile); ,,} }
2。获取指定目录下的所有文件(搜索子文件夹)
void getAllFiles (string 路径,vector,,文件),{//才能文件句柄 long 才能;hFile =, 0;//才能文件信息 struct 才能;_finddata_t  fileinfo;, ,,string p; if 才能;((hFile =, _findfirst (p.assign(路径).append (“\ \ *”) .c_str (),,, fileinfo)), !=, 1), { ,,,do { ,,,,,if ((fileinfo.attrib ,, _A_SUBDIR)),{,//比较文件类型是否是文件夹 ,,,,,,,if (比较字符串(fileinfo.name,,“!”), !=, 0,,,,比较字符串(fileinfo.name,,“. .“), !=, 0), { ,,,,,,,,,files.push_back (p.assign(路径).append (“\ \”) .append (fileinfo.name)); ,,,,,,,,,//递归搜索 ,,,,,,,,,getAllFiles (p.assign(路径).append (“\ \”) .append (fileinfo.name),文件); ,,,,,,,} ,,,,,} ,,,,,else { ,,,,,,,files.push_back (p.assign(路径).append (“\ \”) .append (fileinfo.name)); ,,,,,} ,,,},while (_findnext (hFile,,, fileinfo),==, 0),,//寻找下一个,成功返回0,否则1 ,,,_findclose (hFile); ,,} }
3。获取指定格式的文件(不搜索子文件夹)
/* 路径:指定目录 文件:,保存结果 文件类型:指定的文件格式,如jpg */void getAllFiles (string 路径,vector,,文件,string 文件类型), {//,才能文件句柄 long 才能;hFile =, 0;//,才能文件信息 struct 才能;_finddata_t  fileinfo;, string 才能;p; if 才能;((hFile =, _findfirst (p.assign(路径).append(“\ \ *”, +,文件类型).c_str (),,, fileinfo)), !=, 1), { ,,,do { ,,,,,//,保存文件的全路径 ,,,,,files.push_back (p.assign(路径).append (“\ \”) .append (fileinfo.name)); ,,,,,},while (_findnext (hFile,,, fileinfo),==, 0),,//寻找下一个,成功返回0,否则1 ,,,_findclose (hFile); ,,} }
4。测试
int 主要(int 命令行参数个数,char * *, argv) { vector<才能;string>,温度; getAllFiles才能(“J: \ \ \ \面临test",,临时,“.jpg"); for 才能;(int 小姐:=,0;,小姐:& lt;, temp.size(); + +小姐:) {才能 ,,,cout & lt; & lt;,临时[我],& lt; & lt;, endl; ,,} return 才能;0; }
上述内容就是如何在c++中获取指定目录中的所有文件,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。