• winform程序读取和改写配置文件App.config元素的值


     

          在开发Web项目的时候,会有一个配置文件Web.config,用来存放一些全局的变量,如连接数据库用的字符串。相应的,在开发winform程序时,也有一个配置文件,它就是App.config,这个文件的作用与Web.config大致相同,也可以用来存放程序所用的全局变量及Value值。

           来看一个app.config文件的例子:

    <?xml version="1.0" encoding="utf-8" ?>

    <configuration>
      <appSettings>
        <!--图片存放路径-->
        <add key="ImgPath" value="D:img" />
      </appSettings>
    </configuration>

      

           可以看出,app.config和web.config一样,嗯,它也是一个XML文件。那怎么对这个文件中的元素进行读取操作呢?很简单,来看代码:

     string strPath = System.Configuration.ConfigurationSettings.AppSettings["ImgPath"].ToString();

     这样就可以把app.config文件中ImgPath这个元素的Value值读取出来了。那怎么改写元素的值呢?如果你认为像读那样的去写,像这样的代码:

     System.Configuration.ConfigurationSettings.AppSettings["ImgPath"] = @"E:img"; //这样写是没用的

      

           在对app.config文件的元素Value值进行修改操作时,只能把app.config文件当作一个普通的XML文件来对待,利用System.Xml.XmlDocument类把这个app.config文件读到内存中,并通过System.Xml.XmlNode类找到appSettings节点,通过System.Xml.XmlElement类找到节点下的某个元素,利用SetAttribute方法来修改这个元素的值后,最后再将app.config文件保存到原的目录中,这样,才算完成了对一个元素Value值的修改操作。下面这个方法可完成对app.config文件appSettings节点下任意一个元素进行修改,当然,你也可能修改这个方法,达到修改任意节点,任意元素的Value值。

     public static void SetValue(string AppKey, string AppValue)

        {

            System.Xml.XmlDocument xDoc = new System.Xml.XmlDocument();

             xDoc.Load(System.Windows.Forms.Application.ExecutablePath + ".config");

     

              System.Xml.XmlNode xNode;

              System.Xml.XmlElement xElem1;

              System.Xml.XmlElement xElem2;

              xNode = xDoc.SelectSingleNode("//appSettings");

     

              xElem1 = (System.Xml.XmlElement)xNode.SelectSingleNode("//add[@key='" + AppKey + "']");

              if (xElem1 != null) xElem1.SetAttribute("value", AppValue);

              else

              {

                  xElem2 = xDoc.CreateElement("add");

                  xElem2.SetAttribute("key", AppKey);

                  xElem2.SetAttribute("value", AppValue);

                  xNode.AppendChild(xElem2);

              }

              xDoc.Save(System.Windows.Forms.Application.ExecutablePath + ".config");

          }

           注意这个方法中if条件else下的语句,当在文件中没有找到给定的元素时,方法会创建这个元素。

     

  • 相关阅读:
    面试题:你了解对象分配规则吗
    面试题:Java 对象的创建过程
    面试题:Minor GC、Major GC、Full GC的触发时机
    常见的垃圾回收算法
    Java GUI快速入门
    Java Swing 介绍
    Java 开发环境配置
    Java (windows)安装教程
    Gamma、Linear、sRGB 和Unity Color Space,你真懂了吗?
    Qt OpenGL 蒙板
  • 原文地址:https://www.cnblogs.com/lgx5/p/7202345.html
Copyright © 2020-2023  润新知