保存xml文件,提示“文件正由另一进程使用,因此该进程无法访问该文件”
我现在做的就是生成xml文件,第一次跟第二次生成的xml文件名是一样的,目录也是一样的,第二次保存的时候就提示上面这个问题。以下是我的代码,请帮帮忙啊//这是保存xml文件
public void bindSampleConditonCount(string condition)
{
CreateXml();
LoadXml();
try
{
XmlNode xmldocSelect = xmlDoc.SelectSingleNode("ROOT");
XmlElement el = xmlDoc.CreateElement("sampleConditonCount");
XmlElement xesub1 = xmlDoc.CreateElement("count");
int count = GetSampleConditionCount(condition);
xesub1.InnerText = count.ToString();
el.AppendChild(xesub1);
xmldocSelect.AppendChild(el);
xmlDoc.Save(xmlfullpath);第二次生成的时候这个地方就报错了,
}
catch (Exception e)
{
MessageBox.Show(e.Message.ToString());
}
}
这是创建xml文件
public void CreateXml()
{
XmlDocument xmldoc;
XmlNode xmlnode;
XmlElement xmlelem;
xmldoc = new XmlDocument();
//加入XML的声明段落
xmlnode = xmldoc.CreateNode(XmlNodeType.XmlDeclaration, "", "");
xmldoc.AppendChild(xmlnode);
//加入一个根元素
xmlelem = xmldoc.CreateElement("", "ROOT", "");
xmldoc.AppendChild(xmlelem);
string path = Application.StartupPath + "\\temp";
Directory.CreateDirectory(path);
string fullpath = path + "\\" + "data1.xml";
//保存创建好的XML文档
xmlfullpath = fullpath;
try
{
xmldoc.Save(fullpath);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Console.ReadLine();
}
这是加载xml文件
private void LoadXml() { xmlDoc = new XmlDocument(); xmlDoc.Load((xmlfullpath)); }
--------------------编程问答-------------------- 我没看出错误,所以Copy你的代码运行了下,没问题呀~[align=center]***********************************************************
欢迎使用CSDN 小秘书
***********************************************************[/align] --------------------编程问答-------------------- 第一次打开是不是没有释放掉?? --------------------编程问答--------------------
应该是楼上说的问题,
try
{
xmldoc.Save(fullpath);
//释放资源
}
catch{}
--------------------编程问答-------------------- 多线程操作,关闭
filestream,释放相关资源 --------------------编程问答-------------------- 操作完成。。及时释放资源。。 --------------------编程问答-------------------- 不用说了,流没关闭?关闭流:关闭文件等等…… --------------------编程问答-------------------- 先关闭第一个xml,在程序里需要释放资源。 --------------------编程问答--------------------
可能是这个问题 --------------------编程问答-------------------- 楼上说的没错。
补充:.NET技术 , C#