【发布时间】:2015-11-02 15:47:01
【问题描述】:
我正在使用以下两个代码来加载 XML。当我尝试加载它时,其他一些进程正在更新相同的 XML。这两种情况下都给我以下错误:-
进程无法访问文件 'D:\Projects\WriteOnXml\Xml\test.xml' 因为它正被 另一个进程。
1)
using (FileStream xml = File.Open(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
{
XDocument xdoc = XDocument.Load(xml);
}
2)
using (StreamReader sr = new StreamReader(dest))
{
xdoc = XDocument.Load(sr);
}
我想在它被其他进程更新时加载它。 任何更好的方法。
【问题讨论】:
-
文件被其他进程锁定是不可能的。
-
即使您可以通过两侧的文件共享标志开始读取文件,当然如果一个进程正在写入文件,那么此时它不太可能是有效的 XML。想出一些不必这样做的方法会远更好。
-
@Oday : - 不,我无权访问正在更新它的代码。