标签:递归打印目录下的文件名. opendir readdir
#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
标签:递归打印目录下的文件名. opendir readdir
原文地址:http://12218412.blog.51cto.com/12208412/1871930