使用 C# 保存 XML 时发生异常
本文关键字:异常 XML 保存 使用 | 更新日期: 2023-09-27 18:35:15
我正在尝试通过使用 c# 添加新的子节点来更新现有的 XML 文件。如果我用新名称保存它,一切正常,但我想更新相同的文件,并且在这样做时,出现以下异常:
System.IO.IOException:进程无法访问该文件...因为它是 被另一个进程使用
这是我的代码:(我正在尝试添加新的默认节点)
XmlDocument doc = new XmlDocument();
string path = @"C:'Debug'default.xml";
doc.Load(path);
XmlNode NName = doc.CreateElement("default");
XmlNode SNO = doc.CreateElement("SNo");
SNO.InnerText = "2";
NName.AppendChild(SNO);
doc.DocumentElement.AppendChild(NName);
doc.Save(path);
还有XML文件:
<?xml version="1.0" standalone="yes"?>
<NewDataSet>
<default>
<SNo>1</SNo>
</default>
</NewDataSet>
如果您确定该文件仅由您的进程使用,则只需将其读入字节数组,关闭该文件,然后再次保存:(我在此示例中使用 .net 4.0):
XmlDocument doc = new XmlDocument();
byte[] content = File.ReadAllBytes(path);
using (var memStream = new MemoryStream(content))
{
doc.Load(memStream);
}
XmlNode NName = doc.CreateElement("default");
XmlNode SNO = doc.CreateElement("SNo");
SNO.InnerText = "2";
NName.AppendChild(SNO);
doc.DocumentElement.AppendChild(NName);
doc.Save(path);