TA的每日心情 | 开心 前天 22:51 |
---|
签到天数: 946 天 [LV.10]以坛为家III
管理员
- 积分
- 28876
|
发表于 2019-12-17 10:06:58
|
显示全部楼层
- #include <iostream>
- #include <io.h>
- #include <string>
- using namespace std;
-
- void listFiles(const char * dir,int tab);
-
- int main()
- {
- string dir;
- cout << "Enter a directory (ends with \'\\\'): ";
- cin>>dir;
- dir += "*.*"; // 在要遍历的目录后加上通配符
- listFiles(dir.c_str(),0);
- cout << "Done!\n";
- system("pause");
- return 0;
- }
-
- void listFiles(const char * dir,int tab)
- {
- intptr_t handle;
- _finddata_t findData;
-
- handle = _findfirst(dir, &findData); // 查找目录中的第一个文件
- if (handle == -1)
- {
- cout << "Failed to find first file!\n";
- return;
- }
-
- do
- {
- if (findData.attrib & _A_SUBDIR
- && !(strcmp(findData.name, ".") == 0
- || strcmp(findData.name, "..") == 0
- )){ // 是否是子目录并且不为"."或".."
- cout << findData.name << "\t<dir>\n";
- string subdir(dir);
- subdir.insert(subdir.find("*"), string(findData.name)+"\");
- cout << subdir << endl;
- listFiles(subdir.c_str(),tab+1);//递归遍历子文件夹
- }
- else {
- for (int i = 0; i < tab; ++i)
- cout << "-";
- cout << findData.name << "\t" << findData.size << endl;
- }
- } while (_findnext(handle, &findData) == 0); // 查找目录中的下一个文件
- system("pause");
- _findclose(handle); // 关闭搜索句柄
- }
- ————————————————
- 版权声明:本文为CSDN博主「晚风_清扬」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
- 原文链接:https://blog.csdn.net/RUN32875094/article/details/82286713
复制代码
|
|