以编程方式删除日志文件

时间:2015-08-25 12:06:01

标签: c# .net windows

我有一个静态文件夹路径,用于保存日志文件。我的问题是,如何定期以编程方式删除它们,而不是手动删除。

我更喜欢c#代码。

2 个答案:

答案 0 :(得分:0)

try
{
    if(File.Exists(filePath))
    {
         File.Delete(filePath);
    }
}
catch{}

答案 1 :(得分:0)

基于之前的答案,这就是我提出的需求(大型IIS日志文件让我发疯!):

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace LogFileDeleter
{
    class Program
    {
        static void Main(string[] args)
        {
            DirectoryInfo dir = new DirectoryInfo("c:\\inetpub\\logs\\logfiles\\w3svc1");
            DateTime testDate = DateTime.Now.AddDays(-5);
            foreach (FileInfo f in dir.GetFiles())
            {
                DateTime fileAge = f.LastWriteTime;
                if (fileAge < testDate) {
                    Console.WriteLine("File " + f.Name + " is older than today, deleted...");
                    File.Delete(f.FullName);
                }
                //Console.ReadLine(); //Pause -- only needed in testing.
            }
        }
    }
}

应该是显而易见的,但它只删除5天以上的文件,只在W3SVC1目录中删除。