增強的刪除檔案方法

2021-05-26 11:57:22 字數 1335 閱讀 9102

因為刪除檔案操作時,可能由於檔案被占用、io或安全異常等問題,導致暫時無法被刪除。我使用了一種方法,將欲刪除的檔案或資料夾加上過期標識,這些檔案無法刪除時,就更換乙個刪除期限,當新的刪除期限到來,執行刪除,若刪除失敗,再更換乙個刪除期限,如果反覆,直到檔案被刪除。

我們可以處理多個檔案,對它們同時進行刪除和過期控制,將它建立為乙個刪除任務(或者程序),任務(或程序)本身有乙個比刪除檔案延期更長的生存期限,如果刪除任務沒有完成,但是任務(或程序)發現超過了其生存期限,則自行退出任務(或程序),防止因無法刪除的檔案使任務(或程序)永遠迴圈下去。

流程圖如下:

下面**是它的.net framework 4.0版本實現:

using system;

using system.collections.generic;

using system.io;

using system.linq;

using system.threading;

using system.threading.tasks;

/// /// 提供刪除檔案或資料夾的功能。

/// 注意:刪除檔案執行緒執行期間,建立已經請求刪除的檔案同名稱,有可能會被刪除。

///

public class taskdeletefiles

/// /// 每個檔案或資料夾的刪除失敗後增加的延期

///

public timespan expiredtimespan

//構造

public taskdeletefiles(timespan tasklifetimespan, timespan expiredtimespan)

/// /// 啟動乙個刪除檔案任務

///

/// 檔名清單

public void deletefiles(ienumerablefiles)

private void dodeletefiles(object obj)

break;

}var path = expiredfile.key;

if (file.exists(path))

catch

}else if (directory.exists(path))

catch

}//檔案已經刪除,或者是無效的檔案或目錄名,從清單中移除

expires.remove(path);

break;

}} }

}//~ public class demo

//~

//~ }

去除尾部注釋,直接用csc.exe編譯即可,歡迎提出改進建議。

刪除SVN檔案的方法

要刪除svn工作目錄下的.svn目錄,而svn clinet 本身是不帶清除.svn檔案的命令的。所以只能自己寫指令碼來遞迴刪除.svn資料夾 1 windows 平台下 常用的作法是用系統 windows 自帶的搜尋功能,搜尋出所有.svn目錄 需要在 其他高階選項 中選中 搜尋隱藏的檔案和資料夾...

刪除dll檔案方法

很多朋友多遇到過刪除dll檔案時無法刪除的情況,有很多是用軟體刪除的,今天告訴大家乙個不用軟體刪除dll的辦法,在清除病毒和頑固木馬的時候更輕鬆 因為dll檔案的特性注定了它可能被多個軟體呼叫,這也是dll檔案為什麼刪除不掉的原因 正在使用的檔案是當然不可能給你刪除的。那麼到底是哪個程式在呼叫這個d...

強行刪除檔案方法

請注意 該動畫內所含廣告與本站無任何關係,為作者個人宣傳,網路交易風險自負 登出或重啟後,再刪 檔案 進入安全模式或用啟動軟盤 光碟 啟動進入純dos,刪除 用windows優化大師等的檔案粉碎機刪除 win2000 xp系統以管理員身份登入,再執行刪除操作 如果系統是winxp,關閉系統還原,再刪...