如何在c++中获取指定目录中的所有文件

  介绍

本篇文章为大家展示了如何在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++中获取指定目录中的所有文件

上述内容就是如何在c++中获取指定目录中的所有文件,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。

如何在c++中获取指定目录中的所有文件