该进程无法访问该文件,因为该文件正由另一个进程使用

时间:2009-10-26 14:13:26

标签: c#

我正在尝试读取log4net的日志文件:

FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read)

我得到了关于该主题的Exception。我猜log4Net是对文件的独占锁定,但是,例如Notepad ++可以读取文件,我想在技术上可以做到这一点。

任何帮助?

2 个答案:

答案 0 :(得分:70)

using (FileStream fs = 
    new FileStream(filePath,
        FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
//...

http://msdn.microsoft.com/en-us/library/system.io.fileshare.aspx

您的日志可能是写锁定的,因此请尝试使用FileShare.ReadWrite。

答案 1 :(得分:13)

尝试添加FileShare选项,看看是否有帮助:

FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);

编辑:更正后的代码,而非FileShare.Read,但FileShare.ReadWrite可以解决问题(如Guillaume所示)。原因是:您要打开文件并允许其他人同时读取和写入文件。

相关问题