一、錯誤提示
當我們讀取一個文件而該文件被占用時會報錯如下信息:
二、解決辦法
此問題發生一般是資源沒被釋放掉,但也存在如下可能性。我們對文件的操作非常頻繁,所以寫了特定的操作類/組件來維護文件之間的操作,知道特定的時刻才結束,常見的如日志,隨着程序的啟動便開始寫日志,直到程序關閉。但其中也存在我們需要提供一個特殊的操作(讀/寫/刪除)來操作文件,例如我們需要提供一個日志查看器來查看當前日志或所有日志,這時,便無可避免的發生了以上的問題。解決此問題,只需將文件讀寫鎖改為FileShare.ReadWrite
(FileShare就是控制文件流的“訪問權限),具體代碼如下:
using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
{
byte[] bt = new byte[fs.Length];
fs.Read(bt, 0, bt.Length);
fs.Close();
}