C# 文件正由另一進程使用,該進程無法訪問該文件

C#中經常會使用到OpenFileDialog控件,而使用該控件時若沒有將條件設置好,很容易出現以下提示:

“文件正由另一進程使用,該進程無法訪問該文件”。

打開一個文件後,嘗試重新打開一次該文件,或者打開該文件後想對該文件進行其他操作的時候,就容易出現這個錯誤提示,錯誤的原因很簡單,解決方法也很簡單。

一般情況下造成該錯誤的原因是構造System.IO.FileStream時參數設置有問題。

我一直習慣直接使用:

FileStream fs = new FileStream(fileName, FileMode.Open)

這個方法打開文件的時候是以只讀共享的方式打開的,但若此文件已被一個擁有寫權限的進程打開的話,就無法讀取了,

因此需要使用

FileStream fs = new FileStream(fileName, FileMode.OpenFileAccess.Read, FileShare.ReadWrite);

設置文件共享方式爲讀寫:FileShare.ReadWrite,這樣的話問題就解決了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章