C++ 帮我写一个段文件用修改时间排序的程序
时间: 2023-09-26 09:04:57 浏览: 112
你可以使用 `std::sort()` 函数来排序,需要自己定义比较函数。下面是一个示例程序,可以根据文件修改时间对文件进行排序:
```c++
#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
#include <filesystem>
namespace fs = std::filesystem;
bool compare_mtime(const fs::directory_entry& a, const fs::directory_entry& b)
{
return fs::last_write_time(a) < fs::last_write_time(b);
}
int main()
{
std::string path = "."; // 文件夹路径,这里使用当前目录
std::vector<fs::directory_entry> files; // 存储文件的 vector
for (const auto& file : fs::directory_iterator(path)) {
if (fs::is_regular_file(file)) {
files.push_back(file);
}
}
std::sort(files.begin(), files.end(), compare_mtime); // 排序
for (const auto& file : files) {
std::cout << file.path() << '\n';
}
return 0;
}
```
该程序使用 C++17 中的文件系统库 `std::filesystem`,需要编译时指定 `-lstdc++fs` 选项。程序会输出指定目录下的所有文件,并按照修改时间从早到晚排序。你可以根据自己的需求对程序进行修改。
阅读全文