您的位置:首页 > 运维架构 > Linux

Linux打印文件目录结构

2013-06-18 14:14 459 查看
#include <unistd.h>
#include <stdio.h>
#include <dirent.h>
#include <string.h>
#include <sys/stat.h>
#include <stdlib.h>

void printdir(char * dir, int depth)
{
DIR * dp;
struct dirent * entry;
struct stat statbuf;

if ((dp = opendir(dir)) == NULL)
{
fprintf(stderr, "cannot open directory: %s\n", dir);
return;
}
chdir(dir);
while ((entry = readdir(dp)) != NULL)
{
lstat(entry->d_name, &statbuf);
if (S_ISDIR(statbuf.st_mode))
{
// 找到一个目录,但是忽略.以及..
if (strcmp(".", entry->d_name) == 0 || strcmp("..", entry->d_name) == 0)
{
continue;
}
printf("%*s%s/\n", depth, "", entry->d_name);
// 递归打印新的缩进层
printdir(entry->d_name, depth + 4);
}
else
{
printf("%*s%s\n", depth, "", entry->d_name);
}
}
chdir("..");
closedir(dp);
}

int main()
{
printf("Directory scan of /home:\n");
printdir("/home", 0);
printf("done.\n");

exit(0);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: