C++遍历文件及文件夹代码
可以遍历目录包含的文件及文件夹
1 #include <string> 2 #include <vector> 3 #include <io.h> 4 5 using std::vector; 6 using std::string; 7 8 void getAllFiles(string path, vector<string>& files) 9 { 10 //文件句柄 11 long hFile = 0; 12 //文件信息 13 struct _finddata_t fileinfo; 14 string p; 15 if ((hFile = _findfirst(p.assign(path).append("\\*").c_str(), &fileinfo)) != -1) 16 { 17 do 18 { 19 if ((fileinfo.attrib & _A_SUBDIR)) 20 { 21 if (strcmp(fileinfo.name, ".") != 0 && strcmp(fileinfo.name, "..") != 0) 22 { 23 //files.push_back(p.assign(path).append("\\").append(fileinfo.name)); // 路径名 24 getAllFiles(p.assign(path).append("\\").append(fileinfo.name), files); // 递归子目录 25 } 26 } 27 else 28 { 29 files.push_back(p.assign(path).append("\\").append(fileinfo.name)); // 完整路径+文件名 30 //files.push_back(fileinfo.name); // 文件名 31 } 32 } while (_findnext(hFile, &fileinfo) == 0); 33 _findclose(hFile); 34 } 35 }