C#实现定时删除日志文件夹及文件夹下文件
在做项目的时候经常会遇到log文件记录太多导致硬盘容量不足,需要手动删除几月前的log文件。其实通过写代码就可以实现该功能。
一般记录log文档时都是按照日期创建文件夹,以下代码可实现删除超过设定天数的文件夹日志
/// <summary>
/// 删除文件夹
/// </summary>
/// <param name="fileDirect"></param>
/// <param name="saveDay"></param>
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天的文件
}
以上只是最基础的实现该功能,后续请自行完善。