如何正确打开FileStream以与XDocument一起使用

Mat*_*ats 7 .net c# access-control linq-to-xml filestream

我想使用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();
}
Run Code Online (Sandbox Code Playgroud)

任何帮助都非常有用.

Jon*_*eet 8

加载文档,关闭流,再次保存.这也意味着你可以用更简单的方式打开它:)

XDocument doc;

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

doc.Save(filename);
Run Code Online (Sandbox Code Playgroud)