由于另一个进程正在使用该文件,因此该进程无法访问该文件。

43

我想要读取log4net的日志文件:

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

我得到了主题上指定的异常。我猜测是log4Net在文件上持有独占锁,但是,例如Notepad++可以读取该文件,所以我猜这在技术上是可能的。

有任何帮助吗?

2个回答

85

2
这对我不起作用。它仍然显示文件正在被另一个进程使用。你有什么想法为什么会这样吗? - tyegah123
奇怪的是,这解决了我的问题,尽管冲突访问是一个StreamReader。 - Hot Licks

17

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

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

编辑:更正代码,不是使用FileShare.Read而是FileShare.ReadWrite即可解决问题(正如Guillaume所示)。原因是:您想打开文件并允许其他人同时读写它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接