我有這樣一段代碼,它加載一個文件到RAM中,然後加載它作爲一個組件裝入一個AppDomain(d
):File.ReadAllBytes保持文件句柄打開
var a = d.Load(File.ReadAllBytes(tmp));
的問題是,當我稍後嘗試刪除位於tmp
的文件(現在只是使用文件資源管理器),我收到一個錯誤消息說該文件在我的程序中仍然打開。我什至嘗試使用using
關鍵字與File.Open
,這似乎也沒有工作。有人可以解釋爲什麼會發生這種情況,以及如何解決它?
'File.ReadAllBytes'不保持開放的流文件。也許這是你的代碼中的其他地方? – Magnus
在另一個位置打開文件。這個語句是正確的,它使用了一個當它返回字節數組時已經處理過的FilesStream。你如何創建臨時文件? –
@Alois我使用了'Path.GetTempFilePath()' –