zoukankan      html  css  js  c++  java
  • 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下的语句,当在文件中没有找到给定的元素时,方法会创建这个元素。

  • 相关阅读:
    hdu 4614 线段树 二分
    cf 1066d 思维 二分
    lca 最大生成树 逆向思维 2018 徐州赛区网络预赛j
    rmq学习
    hdu 5692 dfs序 线段树
    dfs序介绍
    poj 3321 dfs序 树状数组 前向星
    cf 1060d 思维贪心
    【PAT甲级】1126 Eulerian Path (25分)
    【PAT甲级】1125 Chain the Ropes (25分)
  • 原文地址:https://www.cnblogs.com/bynet/p/1755721.html
Copyright © 2011-2022 走看看