【发布时间】:2012-03-08 18:09:20
【问题描述】:
我有一个简单的 c# 函数,它创建一个基本的 XML 文件并保存:
private void CreateXMlFile(string Filename, string Name, string Company)
{
XmlDocument doc = new XmlDocument();
XmlNode docNode = doc.CreateXmlDeclaration("1.0", "UTF-8", null);
doc.AppendChild(docNode);
XmlNode licenseNode = doc.CreateElement("license");
doc.AppendChild(licenseNode);
XmlNode node = doc.CreateElement("Name");
node.AppendChild(doc.CreateTextNode(Name));
licenseNode.AppendChild(node);
node = doc.CreateElement("Company");
node.AppendChild(doc.CreateTextNode(Company));
licenseNode.AppendChild(node);
doc.Save(Filename);
}
当我尝试编辑或删除文件时,我总是收到以下错误:
进程无法访问该文件,因为它正被另一个进程使用 过程。
XmlDocument 没有任何内置的 dispose 或 close 例程,我想知道如何在以后编辑或删除文件之前强制关闭文件。
我尝试使用 StreamWriter 保存文件:
StreamWriter outStream = System.IO.File.CreateText(outfile);
outStream.Write(data);
outStream.Close();
但这对同样的错误没有影响。
您的建议被广泛接受。
谢谢
【问题讨论】:
-
您是否尝试过使用流写入实例而不是传递文件名来保存?
-
我遇到了同样的问题,但如果 XML 存在,我的代码会先加载它。
XmlReader对象需要在文件上的锁被释放之前关闭。
标签: c# xml xmldocument