我使用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;
}
}
}
2条答案
按热度按时间alen0pnh1#
我所见过的最好的方法是直接从
boost
filesystem教程中找到的。在this的特定例子中,作者将文件名/目录附加到向量上,然后使用std::sort
来确保数据是按字母顺序排列的。您的代码可以很容易地更新为使用这种类型的算法。lkaoscv72#
直接来自boost文件系统教程。
感谢泰勒编修。
如果你比较懒,下面是经过改编的代码: