使用 boost::filesystem 迭代目录时可以更改文件的顺序吗?



我使用 boost 的directory_iterator继承了一些代码:

for (directory_iterator fileIt{currDir}; fileIt != directory_iterator{}; ++fileIt) {
// Do stuff with files
}

我想按特定顺序处理文件(简单的字母排序就可以了)。有没有办法实现这一点,即强制迭代器根据某种排序而不是默认值给我文件?

您需要自己排序,因为未指定通过取消引用directory_iterator的连续增量获得的目录条目的顺序

std::vector<boost::filesystem::path> paths(
boost::filesystem::directory_iterator{"."}
, boost::filesystem::directory_iterator{}
);
std::sort(paths.begin(), paths.end());
for(auto const& path : paths)
std::cout << path << 'n';

最新更新