C# 如何读取另一进程正在使用的文件?

C# 如何读取另一进程正在使用的文件?,c#,C#,我需要读取另一进程正在使用的文件。我如何在C#中实现这一点 谢谢 如果另一个进程对该文件设置了独占锁,则无法读取该文件。另一个进程出于某种原因锁定了文件;不要试图击败其他程序。如果您认为其他程序不必要地锁定了文件,请与其他程序的作者联系 如果他们对文件设置了非独占锁定,则请求对文件的共享访问,而不是请求独占访问。如果您只需要对文件具有读取访问权限,则可以尝试以下操作: using (var stream = File.Open("log.txt", FileMode.Open, FileAcce

我需要读取另一进程正在使用的文件。我如何在C#中实现这一点


谢谢

如果另一个进程对该文件设置了独占锁,则无法读取该文件。另一个进程出于某种原因锁定了文件;不要试图击败其他程序。如果您认为其他程序不必要地锁定了文件,请与其他程序的作者联系


如果他们对文件设置了非独占锁定,则请求对文件的共享访问,而不是请求独占访问。

如果您只需要对文件具有读取访问权限,则可以尝试以下操作:

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.
}

代码取自post。

访问锁定文件的一种方法是使用

从VB.Net移植到C#,并修改它以满足您的需要应该相对容易

由于Eric Lippert在中提到的原因,您应该犹豫是否使用此解决方案