从4天以前的文件夹中删除文件

时间:2009-09-03 15:21:33

标签: c# datetime file-io delete-file

我想每5小时运行一次计时器,并从超过4天的文件夹中删除文件。你能用样本代码取悦吗?

2 个答案:

答案 0 :(得分: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属性替换为其他内容,这就是我在我的应用程序中清除图像缓存时所使用的内容。

编辑:

虽然这不包括计时器部分......我会让你自己想出那个部分。一个小小的谷歌搜索应该按照计划向您展示几种方法。

答案 1 :(得分:4)

由于没有提及,我建议使用System.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服务中运行文件删除代码。