我有一个充满文件的目录,每个文件都根据它以YYYYMMDD格式创建的日期命名,确保它们从最少到最近的数字排序。我只需要读取今天未创建的最新文件。我的代码是:
#include <string>
#include <filesystem>
using namespace std;
using namespace std::experimental::filesystem::v1;
path dirPath("C:/Logs/");
path recentPath;
string todaysDate("20170806"); // Or whatever the current date is, gotten automatically
for (auto it = directory_iterator(dirPath); it != directory_iterator(); it++)
{
auto p = it->path();
auto base = p.stem();
auto ext = p.extension();
if (ext == ".log" && base != todaysDate)
{
recentPath= p;
}
}
这是有效的,因为迭代器以字母数字顺序遍历目录。但是,根据directory_iterator
的文档:
除了每个目录条目外,未指定迭代顺序 只访问过一次。
所以我的主要问题是:
有没有办法可以更快地和/或以保证的方式到达我需要的文件?