写一个递归遍历文件的代码 ,创建时间超过两天的就删除
时间: 2024-04-08 15:30:15 浏览: 56
Python实现递归遍历文件夹并删除文件
以下是一个递归遍历文件并删除创建时间超过两天的文件的示例代码:
```cpp
#include <iostream>
#include <filesystem>
#include <chrono>
namespace fs = std::filesystem;
void deleteOldFiles(const fs::path& directory) {
for (const auto& entry : fs::directory_iterator(directory)) {
if (fs::is_directory(entry)) {
deleteOldFiles(entry.path()); // 递归遍历子目录
}
else {
auto creationTime = fs::last_write_time(entry);
auto currentTime = std::chrono::system_clock::now();
auto duration = std::chrono::duration_cast<std::chrono::hours>(currentTime - creationTime);
if (duration.count() > 48) { // 如果创建时间超过两天(48小时),则删除文件
std::cout << "Deleting old file: " << entry.path() << std::endl;
fs::remove(entry.path());
}
}
}
}
int main() {
fs::path directoryPath = "/path/to/directory"; // 替换为你要遍历的目录路径
deleteOldFiles(directoryPath);
return 0;
}
```
这段代码使用了 C++17 中的 `std::filesystem` 库来进行文件操作。`deleteOldFiles` 函数通过递归遍历指定目录及其子目录中的所有文件,然后获取每个文件的创建时间与当前时间进行比较,判断是否超过两天。如果超过两天,则通过 `std::filesystem::remove` 函数删除该文件。
请注意,这段代码仅提供了一个基本的框架,实际使用时可能需要更多的错误处理和安全性检查等。另外,为了使用 `std::filesystem` 库,你需要使用支持 C++17 的编译器,并在编译时链接对应的库。
阅读全文