我一直在努力爭取一段時間。我在調用File.Copy方法後無法訪問文件。這是我嘗試過的:File.Copy方法使文件無法訪問
File.Copy(sourceFile, destinationFile, true);
FileStream fs = File.Open(destinationFile, FileMode.Open);
我在第二行收到UnauthorizedAccessException。它說:訪問路徑...被拒絕。我也嘗試過建議here,但那並不奏效。
任何幫助表示讚賞。
編輯:這是我發現的。如果我這樣做:
File.Copy(sourceFile, destinationFile, true);
FileStream fs = File.Open(destinationFile, FileMode.Open, FileAccess.Read);
它不會拋出異常。我試圖訪問的文件是隻讀的。所以,我試圖刪除像這樣的只讀屬性:
File.Copy(sourceFile, destinationFile, true);
FileInfo fileInfo = new FileInfo(destinationFile);
fileInfo.IsReadOnly = false;
FileStream fs = File.Open(destinationFile, FileMode.Open, FileAccess.ReadWrite);
而且我得到和以前一樣的異常。順便說一下,我檢查了是否可以手動打開文件並對其進行編輯,而且我可以。當然,當我取消選中只讀複選框。我還在調試時在Windows資源管理器中檢查了文件屬性,緊接着第三行,並且該文件不再是隻讀的。把所有這些都檢查出來,我不明白爲什麼第四行會拋出異常。
嘗試把一個'System.Threading.Thread.Sleep(1000);'字裏行間,看它是否是一個計時問題(文件可能仍然被鎖定'File.Copy()' – oleschri 2011-06-06 13:22:07
我試圖做出類似的東西,我創建了一個while循環,如果不拋出異常,它應該退出,但它永遠不會退出... – Vale 2011-06-06 13:37:05
您是否試過在複製之前刪除只讀屬性? – leppie 2011-06-07 06:26:18