C# 读取指定路径下的所有文件并删除指定天数之前的文件
时间: 2024-12-17 10:22:11 浏览: 13
在C#中,你可以使用`Directory.GetFiles()`方法获取指定目录下的所有文件,然后通过`DateTime.Now.AddDays(-指定天数)`计算出删除的日期界限。接着遍历文件列表,如果文件的修改时间早于这个界限,则可以使用`File.Delete()`方法将其删除。这里是一个简单的示例:
```csharp
using System;
using System.IO;
public static void DeleteFilesOlderThanDays(string directoryPath, int daysToKeep)
{
// 获取当前日期减去指定天数
DateTime deleteBefore = DateTime.Now.AddDays(-daysToKeep);
// 获取指定目录下的所有文件信息
string[] files = Directory.GetFiles(directoryPath);
foreach (string file in files)
{
// 检查文件是否已过期
DateTime fileInfoLastModified = File.GetLastWriteTime(file);
if (fileInfoLastModified < deleteBefore)
{
try
{
// 如果文件已过期,尝试删除它
Console.WriteLine($"Deleting old file: {file}");
File.Delete(file);
}
catch (Exception ex)
{
// 处理删除失败的情况,例如权限不足等
Console.WriteLine($"Failed to delete {file}: {ex.Message}");
}
}
}
}
```
在这个函数中,你需要替换`directoryPath`为你想要操作的实际目录,`daysToKeep`是要保留的天数。
阅读全文