C++ 获得指定目录下的所有文件
头文件:#include #include #include #include
//获得指定目录下的所有文件(不搜索子文件夹)/path: 指定目录files: 保存结果/voidGetAllFiles(stringpath,vector&files){             longhFile= 0;// 文件句柄         struct_finddata_tfileinfo;// 文件信息       stringsFile;//文件名(绝对路径)       if((hFile=_findfirst(sFile.assign(path).append(“\“).c_str(), &fileinfo)) != -1)//第一次查找       {              do              {                     if(!(fileinfo.attrib&_A_SUBDIR))                            files.push_back(sFile.assign(path).append(“\“).append(fileinfo.name));//添加文件的全路径              }              while(0 ==_findnext(hFile, &fileinfo)); //寻找下一个,成功返回0,否则-1              _findclose(hFile);       }}//获取指定格式的文件(不搜索子文件夹)/path: 指定目录fileType: 指定的文件格式,如 .jpgfiles: 保存结果/voidGetAllFilesBySuffix(stringpath,stringfileType,vector&files){             longhFile= 0;// 文件句柄         struct_finddata_tfileinfo;// 文件信息       stringsFile;//文件名(绝对路径)       if((hFile=_findfirst(sFile.assign(path).append(“\“+fileType).c_str(), &fileinfo)) != -1)//第一次查找       {              do              {                     if(!(fileinfo.attrib&_A_SUBDIR))//非子目录                            files.push_back(sFile.assign(path).append(“\“).append(fileinfo.name));//添加文件的全路径              }              while(0 ==_findnext(hFile, &fileinfo)); //寻找下一个,成功返回0,否则-1              _findclose(hFile);       }}//获取指定目录下的所有文件(递归搜索子文件夹)/path: 指定目录files: 保存结果/voidGetAllFilesRecursive(stringpath,vector&files){             longhFile= 0;//文件句柄          struct_finddata_tfileinfo;//文件信息       stringsFile;//文件名(绝对路径)       if((hFile=_findfirst(sFile.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(sFile.assign(path).append(“\“).append(fileinfo.name));//添加子目录的全路径                                  //递归搜索                                  GetAllFilesRecursive(sFile.assign(path).append(“\“).append(fileinfo.name),files);                           }                     }                     else//如果查找到的是文件                      {                            files.push_back(sFile.assign(path).append(“\“).append(fileinfo.name));//添加文件的全路径                     }              }              while(_findnext(hFile, &fileinfo) == 0); //寻找下一个,成功返回0,否则-1              _findclose(hFile);       }}