c_cpp Linux的遍历读取目录下的图片路径

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp Linux的遍历读取目录下的图片路径相关的知识,希望对你有一定的参考价值。

#include "dirent.h"
int readDir(char *basePath, vector<string> &filelist)
{
    DIR *dir;
    struct dirent *ptr;
    char base[1000];

    if ((dir = opendir(basePath)) == NULL)
    {
        printf("readDir:Open dir error...\n");
        exit(1);
    }

    while ((ptr = readdir(dir)) != NULL)
    {
        if (strcmp(ptr->d_name, ".") == 0 || strcmp(ptr->d_name, "..") == 0)    ///current dir OR parrent dir
        {
            //printf("strcmp(ptr->d_name,\n");
            continue;
        }

        else if (ptr->d_type == 8)    ///file
        {
            char *pszFileType = NULL;
            pszFileType = &(ptr->d_name[strlen(ptr->d_name) - 3]);
            if (!strcasecmp(pszFileType, "jpg"))
            {
                string str_basePath(basePath);
                string str_d_name(ptr->d_name);
                string str_szFullPath = str_basePath + "/" + str_d_name;
                filelist.push_back(str_szFullPath);
            }
            else
            {
                //printf("is not jpg!\n");
            }
            //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);
            readDir(base, filelist);
        }
        else
        {
            //printf("load img error!\n");
        }
    }
    closedir(dir);

    sort(filelist.begin(), filelist.end());

    return 1;
}

以上是关于c_cpp Linux的遍历读取目录下的图片路径的主要内容,如果未能解决你的问题,请参考以下文章

linux 下的文件目录操作之遍历目录

在php中, 如何动态读取目录文件夹下的图片?

交互式shell脚本遍历文件目录下的所有文件和目录(绝对路径)

数据库读取图片

php 遍历文件夹文件问题

交互式shell脚本遍历文件目录下的所有文件和目录(绝对路径)