C# IOException-另一个进程正在使用FileShare.ReadWrite的文件

C# IOException-另一个进程正在使用FileShare.ReadWrite的文件,c#,ioexception,C#,Ioexception,我一直在为我的问题寻找解决方案,尝试了许多可能性,但当另一个进程正在使用某个文件内容时,我仍然无法读取该文件内容。我希望有人能帮忙:) 下面是我要如何打开它进行读取访问的代码: using (StreamReader fs = new StreamReader(new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))) { doc = XDocume

我一直在为我的问题寻找解决方案,尝试了许多可能性,但当另一个进程正在使用某个文件内容时,我仍然无法读取该文件内容。我希望有人能帮忙:)

下面是我要如何打开它进行读取访问的代码:

        using (StreamReader fs = new StreamReader(new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)))
        {
            doc = XDocument.Load(fs);
        }

你能用记事本…word打开它吗

using (var fs = new FileStream(path, FileMode.Open, 
FileAccess.Read, FileShare.ReadWrite))
using (var sr = new StreamReader(fs, Encoding.Default)) {
// read the stream
}

看起来根本原因是我模拟的文件被打开了。调用“File.OpenWrite()”将使用FileAccess打开文件。无一个将禁用对该文件的其他访问

感谢响尾蛇94:)


如果我使用其他方法来模拟打开的文件,那么给定的示例也可以使用。

为什么要使用
OpenWrite
来模拟读取?因为OpenWrite拒绝来自其他进程的所有访问:嗯,基本上是这个文件。OpenWrite(文件)使用FileAccess打开文件。无,这意味着我将无法从任何其他应用程序/代码打开它,对吗?没错。可能有办法解决这个问题,但您需要第二个应用程序以更高的权限运行,并且可能使用另一个API来打开该文件。
using (var fs = new FileStream(path, FileMode.Open, 
FileAccess.Read, FileShare.ReadWrite))
using (var sr = new StreamReader(fs, Encoding.Default)) {
// read the stream
}