如果被另一个进程使用,有没有办法读取该文件?
XmlTextReader reader = new XmlTextReader(inpXMLfileAsString);
答案 0 :(得分:0)
一种可能的解决方案是使用FileStream class以便以只读模式打开文件并将流传递给XmlTextReader class:
var fileStream = new FileStream("c:\\location\\file.xml", FileMode.Open, FileAccess.Read);
var xmlTextReader = new XmlTextReader(fileStream);
或直接使用File.OpenRead method:
var xmlTextReader = new XmlTextReader(File.OpenRead("c:\\location\\file.xml"));
当文件以只读模式打开时,其他进程仍然可以正常访问该文件。一个例子是读取日志文件,而日志文件打开以供写入并由某些(其他)进程填充。
答案 1 :(得分:0)
Depende del modo en el que el otroprocesoabrióelarchivo。 例如我以这种方式打开
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.None
,则无法在其他进程中打开它