c++ 11 目录流DIR,dirent使用

时间:2021-09-04 02:59:06   收藏:0   阅读:26
void GetFiles(const std::string& img_dir_path,std::vector<std::string> &img_file_paths)
{
    DIR* dir;
    if ((dir = opendir(img_dir_path.c_str())) == nullptr) {
        throw std::runtime_error("directory " + img_dir_path + " does not exist");
    }
    dirent* dp;
    for (dp = readdir(dir); dp != nullptr; dp = readdir(dir)) {
        const std::string img_file_name = dp->d_name;

    // 使用readdir读取目录中的所有文件 
    // 默认情况下,包括了‘.‘和‘..‘目录文件
if (img_file_name == "." || img_file_name == "..") {
            continue;
        }
        img_file_paths.push_back(img_dir_path + "/" + img_file_name);
    }
    closedir(dir);

    std::sort(img_file_paths.begin(), img_file_paths.end());
}

原文:https://www.cnblogs.com/lockingball/p/15221908.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!