c++ - 获取文件夹中文件的有序列表

标签 c++ boost boost-filesystem

我使用了 boost::filesystem::directory_iterator 来获取给定文件夹中所有可用文件的列表。

问题是我认为这种方法会按字母顺序给我文件,而结果看起来很随机。

有什么奇特的方法可以按字母顺序对它们进行排序吗?

我当前的代码:

if(boost::filesystem::is_directory(myFolder)){
    // Iterate existing files
    boost::filesystem::directory_iterator end_iter;
    for(boost::filesystem::directory_iterator dir_itr(myFolder);
        dir_itr!=end_iter; dir_itr++){

        boost::filesystem::path filePath;
        // Check if it is a file
        if(boost::filesystem::is_regular_file(dir_itr->status())){
            std::cout << "Reading file " << dir_itr->path().string() << std::cout;
        }
    }
}

最佳答案

我见过的执行您想要的操作的最奇特的方法是直接从 boost filesystem教程。在 this具体示例中,作者将文件名/目录附加到 vector ,然后使用 std::sort 确保数据按字母顺序排列。您的代码可以很容易地更新为使用这种相同类型的算法。

关于c++ - 获取文件夹中文件的有序列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30983154/

相关文章:

c++ - 打印错误的值

c++ - C++中如何根据参数的值返回不同的类型?

c++ - 哪些编译器支持 std::filesystem?

c++ - 如何比较 time_t 和 std::filesystem::file_time_type

c++ - 如何在主目录中创建文件夹?

c++ - 结构名称的唯一性

javascript - 仅调用 deleteLater() 是否足以避免使用 Embind 的 Javascript 中的内存泄漏?

c++ - Boost Graph - 同时使用有向边和无向边

c++ - 具有前向声明类型的 Boost.TypeErasure

c++ - 计算快速线终点