c/c++ linux/windows 读取目录下的所有文件名

参考博客:

Linux和Windows系统下C++读取文件夹下文件名

C++中string、char *、char[]的转换

linux的c语言版,稍加修改,能够遍历LFW子目录所有图片:

#include <stdio.h>
#include <string.h>
#include <dirent.h>

int main(int argc, char **argv){
    struct dirent *ptr, *ptr1;
    DIR *dir, *dir1;
    dir = opendir("./lfw_arcface_crop/");
    // printf("lists of files:
");
    int num = 0;
    while((ptr = readdir(dir)) != NULL){
        if(ptr->d_name[0] == '.')
            continue;

        //search subdirectory
        char sub_dir[50] = "lfw_arcface_crop/";
        strcat(sub_dir, ptr->d_name);
        printf("%s
", sub_dir);
        dir1 = opendir(sub_dir);
        while((ptr1 = readdir(dir1)) != NULL){
            if(ptr1->d_name[0] == '.')
                continue;
            printf("%s   %d
", ptr1->d_name, num);
            ++num;
            //just choose one img of each sub_dir
            // break;
        }
        printf("
");
        closedir(dir1);

    }
    printf("the num of imgs in all subdir is:%d
", num);
    closedir(dir);
    return 0;
}

原文地址:https://www.cnblogs.com/exciting/p/11039711.html