我想每 5 小时运行一次计时器,并从文件夹中删除超过 4 天的文件。您能提供示例代码吗?
nav100
问问题
5203 次
2 回答
8
DateTime CutOffDate = DateTime.Now.AddDays(-4)
DirectoryInfo di = new DirectoryInfo(folderPath);
FileInfo[] fi = di.GetFiles();
for (int i = 0; i < fi.Length; i++)
{
if (fi[i].LastWriteTime < CutOffDate)
{
File.Delete(fi[i].FullName);
}
}
您可以将属性替换LastWriteTime
为其他内容,这正是我在我拥有的应用程序中清除图像缓存时使用的内容。
编辑:
虽然这不包括计时器部分......我会让你自己弄清楚那个部分。一点点谷歌搜索应该会向您展示几种按计划执行此操作的方法。
于 2009-09-03T15:24:59.313 回答
4
由于尚未提及,因此我建议将 aSystem.Threading.Timer
用于类似的内容。这是一个示例实现:
System.Threading.Timer DeleteFileTimer = null;
private void CreateStartTimer()
{
TimeSpan InitialInterval = new TimeSpan(0,0,5);
TimeSpan RegularInterval = new TimeSpan(5,0,0);
DeleteFileTimer = new System.Threading.Timer(QueryDeleteFiles, null,
InitialInterval, RegularInterval);
}
private void QueryDeleteFiles(object state)
{
//Delete Files Here... (Fires Every Five Hours).
//Warning: Don't update any UI elements from here without Invoke()ing
System.Diagnostics.Debug.WriteLine("Deleting Files...");
}
private void StopDestroyTimer()
{
DeleteFileTimer.Change(System.Threading.Timeout.Infinite,
System.Threading.Timeout.Infinite);
DeleteFileTimer.Dispose();
}
这样,您可以轻松地在 Windows 服务中运行文件删除代码。
于 2009-09-03T15:35:16.893 回答