C# 定时清理文件夹中的图片
` static void deleteImageFolder(string targetDirectory)
{
// 定义允许的图片扩展名(不区分大小写)
string[] allowedExtensions = {
".jpg", ".jpeg", ".png", ".gif",
".bmp", ".webp", ".tiff", ".svg"
};
// 计算三个月前的日期
DateTime cutoffDate = DateTime.Now.AddMonths(-2);
try
{
// 验证目录是否存在
if (!Directory.Exists(targetDirectory))
{
Console.WriteLine("目标目录不存在");
return;
}
// 遍历所有文件
foreach(string folder in Directory.GetDirectories(targetDirectory))
{
foreach (string filePath in Directory.GetFiles(folder, "*.*", System.IO.SearchOption.AllDirectories))
{
// 获取文件扩展名并转为小写
string extension = Path.GetExtension(filePath)?.ToLower();
// 检查是否是允许的图片类型
if (allowedExtensions.Contains(extension))
{
// 获取文件最后修改时间
DateTime lastWriteTime = File.GetLastWriteTime(filePath);
// 判断是否早于三个月前
if (lastWriteTime < cutoffDate)
{
try
{
File.Delete(filePath);
Console.WriteLine($"已删除: {filePath}");
}
catch (Exception ex)
{
Console.WriteLine($"删除失败 {filePath}: {ex.Message}");
}
}
}
}
DirectoryInfo di = new DirectoryInfo(folder);
di.Delete(true);
}
Console.WriteLine("清理完成!");
}
catch (Exception ex)
{
Console.WriteLine($"发生错误: {ex.Message}");
}
}
`
new Task( () => {
while(true)
{
Thread.Sleep(1000 * 50);
if (7 == DateTime.Now.Hour && 59 == DateTime.Now.Month)
{
string targetDirectory = @"D:\Image";
ImageCleaner.deleteImageFolder(targetDirectory);
}
}
}).Start();
`

浙公网安备 33010602011771号