保存xml文件,提示“文件正由另一进程使用,因此该进程无法访问该文件”

mmuuy 2010-09-25 09:31:27
我现在做的就是生成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)); }
...全文
603 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuqilin1987 2010-09-25
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ruanwei1987 的回复:]
第一次打开是不是没有释放掉??
[/Quote]
应该是楼上说的问题,
try
{
xmldoc.Save(fullpath);
//释放资源
}
catch{}
ruanwei1987 2010-09-25
  • 打赏
  • 举报
回复
第一次打开是不是没有释放掉??
whowhen21 2010-09-25
  • 打赏
  • 举报
回复
我没看出错误,所以Copy你的代码运行了下,没问题呀~
***********************************************************
欢迎使用CSDN 小秘书
***********************************************************
cjh200102 2010-09-25
  • 打赏
  • 举报
回复
楼上说的没错。
phone1234 2010-09-25
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 s8975565 的回复:]
不用说了,流没关闭?关闭流:关闭文件等等……
[/Quote]
可能是这个问题
hongjiaoli 2010-09-25
  • 打赏
  • 举报
回复
先关闭第一个xml,在程序里需要释放资源。
s8975565 2010-09-25
  • 打赏
  • 举报
回复
不用说了,流没关闭?关闭流:关闭文件等等……
porschev 2010-09-25
  • 打赏
  • 举报
回复
操作完成。。及时释放资源。。
wuyq11 2010-09-25
  • 打赏
  • 举报
回复
多线程操作,关闭
filestream,释放相关资源

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧