导航

linux 下遍历目录中的目录项

Posted on 2012-03-20 20:57  网名还没想好  阅读(262)  评论(0编辑  收藏  举报

#include   <sys/types.h>
#include   <dirent.h>
#include   <sys/stat.h>
void   do_search_dir(char   *path)   {
    DIR   *dir;
    char   fullpath[1024],currfile[1024];
    struct   dirent   *s_dir;
    struct   stat   file_stat;
    strcpy(fullpath,path);
    dir=opendir(fullpath);
    while   ((s_dir=readdir(dir))!=NULL)   {
        if   ((strcmp(s_dir-> d_name, ". ")==0)||(strcmp(s_dir-> d_name, ".. ")==0))   continue;
        sprintf(currfile, "%s/%s ",fullpath,s_dir-> d_name);
        stat(currfile,&file_stat);
        if   (S_ISDIR(file_stat.st_mode))
            do_search_dir(currfile);
        else
            printf( "%s\n ",currfile);
    }
    closedir(dir);
}
int   main(int   argc,char   **argv)   {
    do_search_dir(argv[1]);
}

大致框架如此,代码没调试过,可能有bug。