定期刪除文件夾中的文件——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);
            }