Linux下遍历所有文件及目录

来源:互联网 发布:淘宝站内付费推广 编辑:程序博客网 时间:2024/05/16 19:02

源码如下

 

#include <unistd.h>#include <stdio.h>#include <dirent.h>#include <string.h>#include <sys/stat.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, pwd[2]=".";    if (argc != 2)        topdir=pwd;    else        topdir=argv[1];    printf("Directory scan of %s\n",topdir);    printdir(topdir,0);    printf("done.\n");    return 0;}


 

0 0
原创粉丝点击