当前位置:编程学习 > C#/ASP.NET >>

保存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] --------------------编程问答-------------------- 第一次打开是不是没有释放掉?? --------------------编程问答--------------------
引用 2 楼 ruanwei1987 的回复:
第一次打开是不是没有释放掉??

应该是楼上说的问题, 
try
  {
  xmldoc.Save(fullpath);
   //释放资源
  }
catch{}
--------------------编程问答-------------------- 多线程操作,关闭
filestream,释放相关资源 --------------------编程问答-------------------- 操作完成。。及时释放资源。。 --------------------编程问答-------------------- 不用说了,流没关闭?关闭流:关闭文件等等…… --------------------编程问答-------------------- 先关闭第一个xml,在程序里需要释放资源。 --------------------编程问答--------------------
引用 6 楼 s8975565 的回复:
不用说了,流没关闭?关闭流:关闭文件等等……

可能是这个问题 --------------------编程问答-------------------- 楼上说的没错。
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,