下面是自定义的一个函数,参数分别为:文件夹名称、文件后缀、保存天数
逻辑是获取当前系统的时间,和文件创建时间去作差,如果结果大于保存天数,就删除它
/// <summary> /// 定期清除文件 /// </summary> /// <param name="fileDirect">文件夹</param> /// <param name="postFix">文件后缀</param> /// <param name="saveDay">保存天数</param> private void DeleteFile(string fileDirect, string postFix, int saveDay) { DateTime nowtime = DateTime.Now; //获取当前时间 string[] files = Directory.GetFiles(fileDirect, postFix, SearchOption.AllDirectories); //获取该目录下所有 .txt文件 foreach (string file in files) { FileInfo fileInfo = new FileInfo(file); TimeSpan t = nowtime - fileInfo.CreationTime; //当前时间 减去 文件创建时间 int day = t.Days; if (day > saveDay) //保存的时间 ; 单位:天 { File.Delete(file); //删除超过时间的文件 } } }
调用如下:
我把文件夹路径存到ini文件中,首先读出路径
同样把保存天数存到ini文件中(存的是控件ridiobutton的索引值,具体操作点击这里),然后读出索引值再使用switch来解析索引值对应的天数
最后调用删除文件的函数,这里删除的是excel表格,注意格式为" *.xls ",*不能省略
pathLast = @"\" + day + ".xls"; //文件名 pathHeard = Ini.IniReadValue("配置文件", "path"); //文件夹 path = pathHeard + pathLast; //文件路径 string deleteDay = Ini.IniReadValue("清除文件", "day"); //定期删除文件天数 int deleteDayValue = -1; switch (deleteDay) { case "4": deleteDayValue = -1; break; case "3": deleteDayValue = 3; break; case "2": deleteDayValue = 7; break; case "1": deleteDayValue = 15; break; case "0": deleteDayValue = 30; break; default: break; } if (deleteDayValue >= 0) { DeleteFile(pathHeard, "*.xls", deleteDayValue); }