windows下C plus11遍历目录并删除7天前的文件
时间: 2024-05-03 22:22:54 浏览: 189
以下是一个示例代码,可以遍历指定目录并删除7天前的文件:
```c++
#include <iostream>
#include <chrono>
#include <ctime>
#include <filesystem>
namespace fs = std::filesystem;
void delete_old_files(const std::string& path) {
auto now_time = std::chrono::system_clock::now();
auto remove_time = now_time - std::chrono::hours(24 * 7);
for (auto& file : fs::directory_iterator(path)) {
auto last_write_time = fs::last_write_time(file.path());
auto duration = std::chrono::duration_cast<std::chrono::hours>(now_time - last_write_time);
if (duration.count() > 24 * 7) {
std::cout << "Deleting file: " << file.path() << std::endl;
fs::remove(file.path());
}
}
}
int main() {
std::string path = "C:\\path\\to\\directory";
delete_old_files(path);
return 0;
}
```
该代码首先定义了一个函数`delete_old_files`,它接受一个路径参数,遍历该路径下的所有文件并删除7天前的文件。使用`std::filesystem`库中的`directory_iterator`遍历目录,使用`last_write_time`获取文件的最后修改时间,并使用`duration_cast`计算出现在时间和最后修改时间之间的小时数。如果小时数大于7天(即168小时),则删除文件。
在`main`函数中,我们只需要传递指定的目录路径即可。
阅读全文