设为首页 加入收藏

TOP

C/C++ 遍历Linux目录下所有文件并已树的形式打印
2014-11-24 07:26:17 来源: 作者: 【 】 浏览:0
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..

评论

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

·数据库:推荐几款 Re (2025-12-25 12:17:11)
·如何最简单、通俗地 (2025-12-25 12:17:09)
·什么是Redis?为什么 (2025-12-25 12:17:06)
·对于一个想入坑Linux (2025-12-25 11:49:07)
·Linux 怎么读? (2025-12-25 11:49:04)