C#中經常會使用到OpenFileDialog控件,而使用該控件時若沒有將條件設置好,很容易出現以下提示:
“文件正由另一進程使用,該進程無法訪問該文件”。打開一個文件後,嘗試重新打開一次該文件,或者打開該文件後想對該文件進行其他操作的時候,就容易出現這個錯誤提示,錯誤的原因很簡單,解決方法也很簡單。
一般情況下造成該錯誤的原因是構造System.IO.FileStream時參數設置有問題。
我一直習慣直接使用:
FileStream fs = new FileStream(fileName, FileMode.Open)
這個方法打開文件的時候是以只讀共享的方式打開的,但若此文件已被一個擁有寫權限的進程打開的話,就無法讀取了,
因此需要使用
FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
設置文件共享方式爲讀寫:FileShare.ReadWrite,這樣的話問題就解決了。