【发布时间】:2015-09-08 02:14:53
【问题描述】:
我使用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;
}
}
}
【问题讨论】:
-
不是很花哨,但应该可以:将它们放在一个向量中并对向量进行排序。
-
当您需要以更复杂的方式对它们进行排序时,问题会变得更糟。例如:如果您需要根据文件头中的某些信息对它们进行排序,则必须一个一个地打开文件 -> 读取标题 -> 关闭文件。然后,对文件进行排序。最后,您将不得不开始另一个循环打开每个文件以读取数据记录
标签: c++ boost boost-filesystem