设为首页 加入收藏

TOP

C/C++ 遍历Linux目录下所有文件并已树的形式打印
2014-11-24 07:26:17 来源: 作者: 【 】 浏览:1
Tags:C/C 遍历 Linux 目录 所有 文件 形式 打印

C/C++ 遍历Linux目录下所有文件并已树的形式打印:


#include
#include
#include
#include
#include
#include


using namespace std;
void List(const char *path, int level) {
struct dirent* ent = NULL;
DIR *pDir;
pDir = opendir(path);
if (pDir == NULL) {
//被当作目录,但是执行opendir后发现又不是目录,比如软链接就会发生这样的情况。
return;
}
while (NULL != (ent = readdir(pDir))) {
if (ent->d_type == 8) {
//file
for (int i = 0; i < level; i++) {
printf("-");
}
printf("%s\n", ent->d_name);
} else {
if (strcmp(ent->d_name, ".") == 0 || strcmp(ent->d_name, "..") == 0) {
continue;
}
//directory
std::string _path(path);
std::string _dirName(ent->d_name);
std::string fullDirPath = _path + "/" + _dirName;
for (int i = 0; i < level; i++) {
printf(" ");
}
printf("%s/\n", ent->d_name);
List(fullDirPath.c_str(), level + 1);
}
}
}
int main(int argc, char *argv[]) {
List("/home/yangchao", 0);
return 0;
}


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Android 开发环境搭建---Android .. 下一篇使用Java程序发送post请求给servl..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Java 并发工具类:提 (2025-12-25 20:25:44)
·Java面试技巧:如何 (2025-12-25 20:25:41)
·Java并发编程中的线 (2025-12-25 20:25:38)
·C 语言 - cppreferen (2025-12-25 19:50:27)
·《C 语言入门教程》 (2025-12-25 19:50:23)