为什么我的XmlDocument.Save()失败,“资源正在被另一个进程使用”
本文关键字:另一个 进程 资源 Save XmlDocument 我的 失败 为什么 | 更新日期: 2023-09-27 18:01:36
所以我需要打开一个XML文档,写入它,然后将文件保存回磁盘。我是否需要使用文件流加载XmlDocument以确保在保存之前关闭该流?
string xmlPath = Server.MapPath("../statedata.xml");
XmlDocument xmlDocument = new XmlDocument();
xmlDocument.Load(xmlPath);
XmlNode node = xmlDocument.SelectSingleNode("//root/state");
node.InnerText = string.Format("org.myorg.application.init = {0};",stateJson);
xmlDocument.Save(xmlPath); //blows up!
我以前遇到过这种情况。与其将路径直接传递给Load,不如创建一个XmlReader,可以在加载后处理它:
string xmlPath = Server.MapPath("../statedata.xml");
XmlDocument xmlDocument = new XmlDocument();
using(XmlReader reader = XmlReader.Create(xmlPath))
xmlDocument.Load(reader);
XmlNode node = xmlDocument.SelectSingleNode("//root/state");
node.InnerText = string.Format("org.myorg.application.init = {0};",stateJson);
xmlDocument.Save(xmlPath); //blows up!