一种跨平台的C++遍历目录的方法
程序员文章站
2022-03-11 18:55:10
参考了网络上各路大神的实现方法。主要使用了io.h库 #include #include #include #include #include #include using namespa ......
参考了网络上各路大神的实现方法。主要使用了io.h库
#include <iostream>#include <cstring>#include <io.h>using namespace std;void visitDir(const char* dir){ char dirNew[100]; strcpy(dirNew, dir); strcat(dirNew, "\\*.docx"); // 在目录后面加上"\\*.*"进行第一次搜索 intptr_t handle; _finddata_t findData; handle = _findfirst(dirNew, &findData); if (handle == -1)// 检查是否成功 { datafile.close(); return; } do { if (findData.attrib & _A_SUBDIR) { if(strcmp(findData.name, ".") == 0 || strcmp(findData.name, "..") == 0) continue; cout << findData.name << "\t<dir>\n";// 在目录后面加上"\\"和搜索到的目录名进行下一次搜索 strcpy(dirNew, dir); strcat(dirNew, "\\"); strcat(dirNew, findData.name); visitDir(dirNew); } else cout << findData.name << "\t" << findData.size << " bytes.\n"; }while (_findnext(handle, &findData) == 0); _findclose(handle);}int main(){ char dir[100]; cout<<"Enter a directory:"; cin.getline(dir,100); visitDir(dir); return 0;}