Linux遍历目录

mac2022-06-30  67

#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");    exit(0);}

转载于:https://www.cnblogs.com/Dennis-mi/articles/5390274.html

相关资源:JAVA上百实例源码以及开源项目
最新回复(0)