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
}