Linux C 读取文件夹下所有文件(包括子文件夹)的文件名(转载)

xiaoxiao2021-02-27  366

代码做个记录:

#include <stdio.h>

#include <stdlib.h> #include <string.h> #include <dirent.h> #include <unistd.h> int readFileList(char *basePath) {     DIR *dir;     struct dirent *ptr;     char base[1000];     if ((dir=opendir(basePath)) == NULL)     {         perror("Open dir error...");         exit(1);     }     while ((ptr=readdir(dir)) != NULL)     {         if(strcmp(ptr->d_name,".")==0 || strcmp(ptr->d_name,"..")==0)    ///current dir OR parrent dir             continue;         else if(ptr->d_type == 8)    ///file             printf("d_name:%s/%s\n",basePath,ptr->d_name);         else if(ptr->d_type == 10)    ///link file             printf("d_name:%s/%s\n",basePath,ptr->d_name);         else if(ptr->d_type == 4)    ///dir         {             memset(base,'\0',sizeof(base));             strcpy(base,basePath);             strcat(base,"/");             strcat(base,ptr->d_name);             readFileList(base);         }     }     closedir(dir);     return 1; } int main(void) {     DIR *dir;     char basePath[1000];     ///get the current absoulte path     memset(basePath,'\0',sizeof(basePath));     getcwd(basePath, 999);     printf("the current dir is : %s\n",basePath);     ///get the file list     memset(basePath,'\0',sizeof(basePath));     strcpy(basePath,"./XL");     readFileList(basePath);     return 0; }
转载请注明原文地址: https://www.6miu.com/read-5107.html

最新回复(0)