我正在尝试通过使用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>
答案 0 :(得分:0)
如果您确定该文件仅供您的进程使用,则只需将其读入字节数组,关闭该文件,然后再次保存: (我对此示例使用 .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);