首页 > 代码库 > uc中递归打印目录下的文件

uc中递归打印目录下的文件

#include <stdio.h>                                                              
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <dirent.h>
#include <iostream>
using namespace std;

void print(const char* path){
    DIR* dir = opendir(path);
    if(NULL == dir){
        return ;
    }
    struct dirent* ent;
    while(ent=readdir(dir),ent){//注意逗号表达式.
        if(4 == ent->d_type){
            printf("[%s]\n",ent->d_name);
            if(!strcmp(ent->d_name,".")||!strcmp(ent->d_name,"..")){
                continue;
            }
            char buf[100]={0};
            sprintf(buf,"%s/%se",path,ent->d_name);
            print(buf);//这里递归.
        }
        if(8 == ent->d_type){
            printf("%s\n",ent->d_name);
        }
    }
    int res = closedir(dir);
    if(-1 == res){
        return;
    }
}
int main(void){
    print("./");
    return 0;
}


本文出自 “12208412” 博客,请务必保留此出处http://12218412.blog.51cto.com/12208412/1871930

uc中递归打印目录下的文件