帮我写一个c# 定时器,每隔一个分钟触发一次,删除7天前文件夹内所有文件
时间: 2024-01-25 07:02:34 浏览: 71
定时删除文件夹
5星 · 资源好评率100%
好的,以下是一个基于C#的定时器,能够每隔一分钟触发一次,并删除7天前文件夹内的所有文件。
```csharp
using System;
using System.IO;
using System.Timers;
class Program
{
static void Main(string[] args)
{
Timer timer = new Timer(60000); // 60,000 milliseconds = 1 minute
timer.Elapsed += OnTimedEvent;
timer.AutoReset = true;
timer.Enabled = true;
Console.WriteLine("Press enter to exit.");
Console.ReadLine();
}
private static void OnTimedEvent(Object source, ElapsedEventArgs e)
{
string folderPath = @"C:\example\folder"; // Replace with your folder path
DateTime sevenDaysAgo = DateTime.Now.AddDays(-7);
DirectoryInfo directoryInfo = new DirectoryInfo(folderPath);
FileInfo[] files = directoryInfo.GetFiles();
foreach (FileInfo file in files)
{
if (file.CreationTime < sevenDaysAgo)
{
file.Delete();
}
}
}
}
```
这个程序使用了 `System.Timers` 命名空间中的 `Timer` 类来实现定时器功能。在 `Main` 方法中,我们创建了一个新的 `Timer` 实例,并将其间隔设置为 1 分钟。接着我们将 `OnTimedEvent` 方法绑定到 `Elapsed` 事件上,这个方法将在定时器触发时被调用。
`OnTimedEvent` 方法获取指定文件夹中的所有文件,并删除创建时间早于 7 天前的文件。要修改要删除的文件夹路径,只需修改 `folderPath` 变量的值即可。
阅读全文