7

Linq2XML を使用して、いくつかのノードを xml ドキュメントに追加したいと考えています。問題のファイルは他のプロセスで使用されており、更新中にファイルを読み取ることができるはずです。だから私はこの解決策を思いつきましたが、これは明らかに正しい方法ではありません (メソッド doc.Save() は失敗し、別のプロセスがファイルを使用していると言います):

using (FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.ReadWrite, FileShare.Read))
{
  doc = XDocument.Load(new StreamReader(fs));
  doc.Root.Add(entry);
  doc.Save(filename);
  fs.Close();
}

どんな助けでも大歓迎です。

4

1 に答える 1

8

ドキュメントをロードし、ストリームを閉じて、再度保存します。それはまた、より簡単な方法で開くことができることを意味します:)

XDocument doc;

using (StreamReader reader = File.OpenText(filename))
{
  doc = XDocument.Load(reader);
  doc.Root.Add(entry);
}

doc.Save(filename);
于 2008-11-10T12:53:18.320 に答える