2015-11-02 58 views
0

我使用下面的两个代码加载一个XML.Some其他进程更新相同的XML,而我试图加载it.It竟然放弃了我下面的错误在这两种情况下: -如何使用XDocument.Load()方法加载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); 
} 

我想加载它,而它是由一些其他过程更新。 任何更好的方法。

+1

如果文件被其他进程锁定这是不可能的。 – qxg

+2

即使您可以通过文件共享标志双方开始读取文件,当然如果一个进程处于写入文件的过程中,那么在此时不太可能是有效的XML。如果没有这样做的话,那将会更好。 –

+0

@Oday: - 不,我没有任何访问正在更新它的代码。 –

回答