我從SQL Server數據庫字段獲取二進制數據,並且在我的應用程序有權限的目錄中本地創建文檔。不過,我仍然收到標題中指定的錯誤。我已經嘗試過在網絡上發佈的很多建議,包括Stackoverflow之前的文章中提到的建議。我還使用ProcessExplorer> Find Handle來查找鎖定,並且它不返回文件,就好像該文件未被鎖定一樣。該進程無法訪問該文件,因爲它正在被另一個進程使用
我正在使用下面的代碼將文件保存到文件系統,然後嘗試在稍後在另一個方法中的應用程序進程中將此文件複製到新位置。正是這種複製方法取得了引發異常的新創建文件的路徑。
文件本身是用它的內容創建的,我可以通過Windows資源管理器打開它,沒有任何問題。
我錯過了一些完全明顯的東西嗎?我是從數據庫中正確創建文件嗎?任何幫助解決或更好地診斷問題將不勝感激。
// Get file from DB
FileStream fs = new FileStream(
"C:\myTempDirectory\myFile.doc", FileMode.OpenOrCreate, FileAccess.Write);
BinaryWriter br = new BinaryWriter(fs);
br.Write("BinaryDataFromDB");
fs.Flush();
fs.Close();
fs.Dispose();
// Copy file
File.Copy(sourceFileName, destinationFilename, true);
你會發布實際的代碼嗎?似乎有一個看不見的問題,可能是隱藏在別處...... – Bloodyaugust 2010-02-08 22:21:01
我知道你可能只是爲了你的問題做了一個文本替換,但是你的文件路徑應該是'@「C:\ myTempDirectory \ myFile.doc 「'因爲反斜槓轉義。 – Jacob 2010-02-08 22:32:23
你確定這個異常不是在討論另一個進程正在使用的destinationFilename嗎? – Jacob 2010-02-08 22:39:44