定期刪除文件夾中的文件——C#
下面是自定義的一個函數,參數分別為:文件夾名稱、文件後綴、保存天數
邏輯是獲取當前系統的時間,和文件創建時間去作差,如果結果大於保存天數,就刪除它
/// <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); }