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

标签 c# .net filestream linq-to-xml access-control

我想使用 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();
}

非常感谢任何帮助。

最佳答案

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

XDocument doc;

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

doc.Save(filename);

关于c# - 如何正确打开 FileStream 以与 XDocument 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/277783/

相关文章:

c# - 如何通过 iraninanSystem 代码页将信息存储到 dbf 文件

c# - 使用 C# 即时创建 PowerPoint 演示文稿

c# - 我可以在 Rhino Mocks 中设置当 AssertWasCalled 失败时显示一条用户友好的消息吗?

c# - SOAP 是简单对象访问协议(protocol)还是面向服务的应用程序平台?

c# - 从输入流创建文件

c# - 读取文件名部分未知的文件

c# - 将值发布到 webapi Controller

c# - 如何使用 ASP.NET Core/Razor 通过单击按钮运行在 Razor 页面上编写的 C#?

.net - 对于大型系统来说,电子商务平台值得吗?

c# - StreamReader 和可移植类库