C# 确定在使用XmlTextReader时,文件是否正被另一个进程访问

C# 确定在使用XmlTextReader时,文件是否正被另一个进程访问,c#,xmltextreader,C#,Xmltextreader,如果被另一个进程使用,有没有办法读取该文件 XmlTextReader reader = new XmlTextReader(inpXMLfileAsString); 一种可能的解决方案是使用,以便以只读模式打开文件,并将流传递给: 或直接使用: 当文件以只读模式打开时,其他进程仍可以正常访问该文件。一个例子是读取日志文件,而日志文件是开放的,可以由其他进程写入和填充。Depende del modo en el que el otro proceso abrióel archivo。 比如我

如果被另一个进程使用,有没有办法读取该文件

XmlTextReader reader = new XmlTextReader(inpXMLfileAsString);

一种可能的解决方案是使用,以便以只读模式打开文件,并将流传递给:

或直接使用:


当文件以只读模式打开时,其他进程仍可以正常访问该文件。一个例子是读取日志文件,而日志文件是开放的,可以由其他进程写入和填充。

Depende del modo en el que el otro proceso abrióel archivo。 比如我是这样开的

using (FileStream stream = new FileStream(inpXMLfileAsString, FileMode.Create, FileAccess.Write, FileShare.Read))
{
using (XmlTextWriter reader = new XmlTextWriter(stream,Encoding.UTF8))
{
//Here can write
}
}
您可以使用在其他进程中打开它

using (FileStream stream = new FileStream(inpXMLfileAsString, FileMode.Open, FileAccess.Read, FileShare.Read))
{
using (XmlTextReader reader = new XmlTextReader(stream))
{
//Here can read
}
}

但是如果文件是用FileShare打开的。没有人不能在其他进程中打开它

这在很大程度上取决于其他进程如何使用该文件。可以指定吗?使用该文件的进程将仅是打开该文件的用户。我知道可以使用带有System.IO.FileShare.ReadWrite的filestream。但不确定如何使用XML读取器。尝试捕获IOException如何?如果引发IOException,您可以确定您是否有权访问该文件。很高兴答案有所帮助。
using (FileStream stream = new FileStream(inpXMLfileAsString, FileMode.Create, FileAccess.Write, FileShare.Read))
{
using (XmlTextWriter reader = new XmlTextWriter(stream,Encoding.UTF8))
{
//Here can write
}
}
using (FileStream stream = new FileStream(inpXMLfileAsString, FileMode.Open, FileAccess.Read, FileShare.Read))
{
using (XmlTextReader reader = new XmlTextReader(stream))
{
//Here can read
}
}