2010-12-02 119 views

回答

13

如果其他進程對該文件進行獨佔鎖定,則不會讀取它。另一個進程因某種原因鎖定了文件;不要試圖擊敗其他程序。如果您認爲其他程序不必要地鎖定文件,請將其與其他程序的作者一起提交。

如果他們對該文件進行非排他性鎖定,則請求對文件進行共享訪問而不是請求獨佔訪問。

3

如果你只需要讀訪問該文件,你可以嘗試以下方法:從this後採取

using (var stream = File.Open("log.txt", FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) 
using (var reader = new StreamReader(stream)) 
{ 
    // Actions you perform on the reader. 
} 

代碼。

0

訪問鎖定文件的一種方法是使用volume shadow copy service

將0123.從VB.Net移植到C#並修改它以適合您的需求應該相對容易。

由於Eric Lippert在his answer中提到的原因,您應該猶豫使用此解決方案。

相關問題