我正在開發一個多線程應用程序。我在我的代碼的地方:c#文件移動和覆蓋
File.Delete(sidetapedata);
File.Move(sidetapedata2, sidetapedata); //sidetapedata and sidetapedata2 are two file paths that correspond to sidetapedata.txt and sidetaptdata2.txt in some directory.
第二行有時運行良好等次,它拋出一個IOException
:
Cannot create a file when that file already exists.
還有一個線程正在訪問sidetapedata
文件,但一個只讀這個文件,沒有寫操作。 I am使用鎖來保護競賽條件。不知道爲什麼會發生這種情況。
UPDATE:即使在Visual C#中調試器顯示我這個例外,尋找到包含這些文件的目錄,我看有沒有sidetapedata.txt
文件,但有一個sidetapedata2.txt
文件!
UPDATE2:另外,這種行爲只有當sidetapedata.txt
和sidetapedata2.txt
都發生了空白
刪除它之前重命名文件時,Windows /殺毒/等有時使文件「存在」一會兒你問Windows後,將其刪除。 – 2012-01-08 08:55:22