#include <stdio.h>#include <dirent.h>//头文件int ReadDir(char *path) //读取文件{DIR *dir;char pathname[255];//目录的全名,=当前目录名+子目录名if((dir = opendir(path))==0)//无法打开则跳过{printf("open %s failed!\n",path); return -1;} struct dirent *stdir; while(1){if((stdir = readdir(dir))==0) break; //遍历完一整个文件夹就停止循环if(stdir->d_type == 8)//文件则输出{printf("name: %25s/%s\n",path,stdir->d_name);} else //if(stdir->d_type == 4)//文件夹则递归进行下一轮,打开文件夹{sprintf(pathname,"%s%s",path,stdir->d_name);//获得目录全名(当前目录名 + 子目录名)ReadDir(pathname);} } closedir(dir);//关闭目录}int main(int argc,char *argv[]){if(argc != 2){printf("本程序用于读取目录下所有文件,path为目录\n"); printf("fg : ./aa path\n"); return -1;} ReadDir(argv[1]);}
300字范文,内容丰富有趣,生活中的好帮手!