2015-11-02 59 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: - 不,我沒有任何訪問正在更新它的代碼。 –

回答