C#讀寫文件時出現占用的解決辦法


一、錯誤提示

當我們讀取一個文件而該文件被占用時會報錯如下信息:

image-20211115093806646

二、解決辦法

此問題發生一般是資源沒被釋放掉,但也存在如下可能性。我們對文件的操作非常頻繁,所以寫了特定的操作類/組件來維護文件之間的操作,知道特定的時刻才結束,常見的如日志,隨着程序的啟動便開始寫日志,直到程序關閉。但其中也存在我們需要提供一個特殊的操作(讀/寫/刪除)來操作文件,例如我們需要提供一個日志查看器來查看當前日志或所有日志,這時,便無可避免的發生了以上的問題。解決此問題,只需將文件讀寫鎖改為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();
  }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM