定期刪除資料夾中的檔案——C#
阿新 • • 發佈:2021-01-03
下面是自定義的一個函式,引數分別為:資料夾名稱、檔案字尾、儲存天數
邏輯是獲取當前系統的時間,和檔案建立時間去作差,如果結果大於儲存天數,就刪除它
/// <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); }