使用C#實現(xiàn)的自動清理過期文件的解決方案
更新時間:2026年03月31日 08:45:26 作者:StevenChen85
本文提供了一個用C#實現(xiàn)的自動清理過期文件的解決方案,代碼可刪除指定目錄中超過30天的文件,支持子目錄掃描,并包含完善的異常處理和日志記錄功能,需要的朋友可以參考下
需要用 C# 實現(xiàn)一個清理指定目錄(F:\OvlData\TestResult\Recipes\20\20251212143046),只保留最近 30 天文件,自動刪除過期文件 的方法。給你寫 完整可直接運行、健壯、帶日志、可復用 的代碼。
C# 實現(xiàn):保留 30 天內文件,自動刪除舊文件
功能說明
- 傳入目錄路徑,自動掃描所有文件
- 判斷文件最后寫入時間(最常用)
- 超過 30 天的文件直接刪除
- 支持子目錄(可選開關)
- 帶異常處理 + 控制臺日志
- 適配你的路徑:
F:\OvlData\TestResult\Recipes\20\20251212143046
完整代碼(可直接復制運行)
using System;
using System.IO;
public class FileCleaner
{
/// <summary>
/// 清理目錄:保留最近30天的文件,刪除更早的文件
/// </summary>
/// <param name="targetDir">要清理的目錄</param>
/// <param name="includeSubDir">是否包含子文件夾</param>
public static void CleanFilesOlderThan30Days(string targetDir, bool includeSubDir = true)
{
try
{
// 1. 判斷目錄是否存在
if (!Directory.Exists(targetDir))
{
Console.WriteLine($"目錄不存在:{targetDir}");
return;
}
// 2. 計算30天前的時間點
DateTime limitTime = DateTime.Now.AddDays(-30);
Console.WriteLine($"保留【{limitTime:yyyy-MM-dd HH:mm:ss}】之后的文件");
// 3. 獲取所有文件
SearchOption searchOption = includeSubDir ? SearchOption.AllDirectories : SearchOption.TopDirectoryOnly;
string[] files = Directory.GetFiles(targetDir, "*.*", searchOption);
int deleteCount = 0;
// 4. 遍歷刪除超過30天的文件
foreach (string file in files)
{
try
{
FileInfo fi = new FileInfo(file);
// 判斷:最后修改時間 是否早于30天前
if (fi.LastWriteTime < limitTime)
{
fi.Delete();
deleteCount++;
Console.WriteLine($"已刪除:{file}");
}
}
catch (Exception ex)
{
Console.WriteLine($"刪除失?。簕file},原因:{ex.Message}");
}
}
Console.WriteLine($"\n清理完成!共刪除文件:{deleteCount} 個");
}
catch (Exception ex)
{
Console.WriteLine($"清理異常:{ex.Message}");
}
}
// ==================== 調用示例 ====================
public static void Main()
{
// 你的目標目錄
string path = @"F:\OvlData\TestResult\Recipes\20\20251212143046";
// 執(zhí)行清理(true = 包含子目錄)
CleanFilesOlderThan30Days(path, true);
}
}使用說明(超級簡單)
- 直接復制代碼到你的項目
- 運行
Main()即可自動清理 - 默認規(guī)則:
- 按 最后修改時間 判斷
- 保留 最近 30 天
- 刪除 30 天以前 的所有文件
- 包含子文件夾
可自定義選項
你可以輕松修改:
// 保留15天 DateTime.Now.AddDays(-15); // 不清理子文件夾 CleanFilesOlderThan30Days(path, false); // 按創(chuàng)建時間判斷(不常用) if (fi.CreationTime < limitTime)
適合你的場景
- 測試結果文件
- 日志文件
- 自動生成的報告
- 定時清理目錄
總結
- 代碼安全、帶異常處理,不會因為一個文件刪不掉就崩潰
- 輸出日志清晰,方便你查看刪除了哪些
- 完全適配你提供的路徑:
F:\OvlData\TestResult\Recipes\20\20251212143046
以上就是使用C#實現(xiàn)的自動清理過期文件的解決方案的詳細內容,更多關于C#自動清理過期文件的資料請關注腳本之家其它相關文章!
相關文章
C#創(chuàng)建自定義控件及添加自定義屬性和事件使用實例詳解
這篇文章主要給大家介紹了關于C#創(chuàng)建自定義控件及添加自定義屬性和事件使用的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用C#具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧2020-05-05
DevExpress中GridControl列轉義的實現(xiàn)方法
這篇文章主要介紹了DevExpress中GridControl列轉義的實現(xiàn)方法,在項目開發(fā)中有一定的實用價值,需要的朋友可以參考下2014-08-08

