1
我有這種刪除文件列表的簡單方法。但是在某些情況下,除非我給它睡眠幾秒鐘,否則它將無法刪除文件。這是顯而易見的,尤其是當我合併使用Interop的Word文檔,然後執行合併後,我嘗試刪除它們中的一部分文件(但我猜Word仍然在後臺)。在c中刪除文件的方法#
你會怎麼做這個?有它異步,並使其產卵,將開始一段時間後刪除文件線程(有點像垃圾回收器?)
public static void deleteDocuments(List<string> arrayList) {
foreach (var item in arrayList) {
try {
File.Delete(item);
} catch (Exception e) {
MessageBox.Show("Błąd kasowania: " + e.ToString(), "Błąd Kasowania", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
這將阻塞線程,直到文件被刪除。如果文件始終被鎖定,會發生什麼?我建議添加一個計數器,以最大限度地嘗試刪除文件 – 2011-03-30 14:22:27
你是對的,我很快就寫了,並沒有考慮到所有這一切。在我自己的代碼中,我不得不偶爾做一些這樣的事情,我限制了重試的次數。我將編輯代碼。 – pstrjds 2011-03-30 14:34:21
如果文件列表很長,並且有一個阻塞等待文件被刪除,gui將變得無響應。 – MadBoy 2011-03-30 15:01:53