有没有办法从 C++ 目录中找到最后修改的文件?

1 c++ windows file file-handling

我试图在C++ 中找到最后修改的文件(基于时间戳)。假设一个目录中有很多文件,但是如何获取最后修改的文件?我尝试过使用 dirent.h 但需要包含一个额外的头文件,还需要使用 stat,但在 stat 中,我可以获得文件的唯一日期。有没有办法获取目录中存在的所有文件的名称,然后逐一读取?

谁能帮我吗?一个小代码片段将不胜感激。

操作系统:Windows

eer*_*ika 5

有没有办法从 C++ 目录中找到最后修改的文件?

是的。解决方案的所有部分都在标准库中:您可以使用 获取目录中的一系列文件std::filesystem::directory_iterator,可以使用 获取最后修改时间std::filesystem::last_write_time,还可以使用 查找范围内的最大值std:max_element

但我使用的是旧版本 [比 C++17]

在 C++17 之前,标准库中与文件系统的交互极其有限。这只能使用操作系统提供的 API 来实现。

  • @thibsc 幸运的是,我们已经进入 2020 年了。:) (2认同)
  • 或者这里的 boost::filesystem : [https://www.boost.org/doc/libs/1_73_0/libs/filesystem/doc/index.htm](https://www.boost.org/doc/libs/1_73_0 /libs/文件系统/doc/index.htm) (2认同)