C#实现定时删除日志文件夹及文件夹下文件

C#实现定时删除日志文件夹及文件夹下文件

在做项目的时候经常会遇到log文件记录太多导致硬盘容量不足,需要手动删除几月前的log文件。其实通过写代码就可以实现该功能。

一般记录log文档时都是按照日期创建文件夹,以下代码可实现删除超过设定天数的文件夹日志

    /// 
    /// 删除文件夹
    /// 
    /// 
    /// 
    private void DeleteFile(string fileDirect, int saveDay)
    {
        DateTime nowTime = DateTime.Now;
        DirectoryInfo root = new DirectoryInfo(fileDirect);
        DirectoryInfo[] dics = root.GetDirectories();//获取文件夹
        
        FileAttributes attr = File.GetAttributes(fileDirect);
        if (attr == FileAttributes.Directory)//判断是不是文件夹
        {
            foreach (DirectoryInfo file in dics)//遍历文件夹
            {
                TimeSpan t = nowTime - file.CreationTime;  //当前时间  减去 文件创建时间
                int day = t.Days;
                if (day > saveDay)   //保存的时间 ;  单位:天
                {

                    Directory.Delete(file.FullName, true);  //删除超过时间的文件夹
                }
            }
        }
    }

可以将该类放在软件启动时或计时器里,达到定时清除log文件夹功能:

    private void timer3_Tick(object sender, EventArgs e)
    {
        DeleteFile(System.Environment.CurrentDirectory + @"\log\", 1); //删除该目录下 超过 1天的文件
    }

以上只是最基础的实现该功能,后续请自行完善。

你可能感兴趣的:(C#,Winform)