使用C++获取文件夹中所有文件名

来源:互联网 发布:免费smtp服务器软件 编辑:程序博客网 时间:2024/05/24 01:39
<pre name="code" class="cpp">#include <string>  #include <io.h>  #include <vector>  #include <iostream>  using namespace std;  char * filePath = "E:\\图片"; vector<string> files;  ////获取该路径下的所有文件  void getFiles( string path, string ext,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)                      getFiles( p.assign(path).append("\\").append(fileinfo.name),ext, files );              }              else              {  string s=p.assign(path).append("\\").append(fileinfo.name);  //获取此文件的完整路径char fileDrive[_MAX_DRIVE];char fileDir[_MAX_DIR];char fileName[_MAX_FNAME];char fileExt[_MAX_EXT];_splitpath(s.c_str(),fileDrive,fileDir,fileName,fileExt);  //将完整路径分解if(strcmp(fileExt,ext.c_str())==0)  //筛选出符合后缀条件的文件{                    files.push_back(p.assign(path).append("\\").append(fileinfo.name) ); }                             }          }while(_findnext(hFile, &fileinfo)  == 0);          _findclose(hFile);      }  }  void main(){string s;s=".jpg";   getFiles(filePath,s,files );     char str[30];     int size = files.size();     for (int i = 0;i < size;i++)     {        cout<<files[i].c_str()<<endl;     }  }



0 0