Linux下遍历目录下的所有文件

来源:互联网 发布:淘宝一千零一夜观看 编辑:程序博客网 时间:2024/06/06 05:02

在linux下运行

#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(int argc, char* argv[]){  char *topdir = ".";  if (argc >= 2)    topdir = argv[1];  printf("Directory scan of %s\n", topdir);  PrintDir(topdir, 0);  printf("Done.\n");  return 0;}
原创粉丝点击