2015-10-26 33 views
0

我要保存的app.config的帮助文件如何使用app.config保存新的Xml文件?

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <startup> 
     <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> 
    </startup> 
    <appsetting> 
    <add key ="filename" value ="abc.xml"></add> 
    <add key="filepath" value ="C:\\Users\\saket.parasar.jha"></add> 
    </appsetting> 
</configuration> 

我的XML文件保存到指定路径 - 代码:

XmlDocument doc = new XmlDocument(); 
     //XmlNode docNode = doc.CreateXmlDeclaration("1.0", "UTF-8", null); 
     //doc.AppendChild(docNode); 

     XmlNode productsNode = doc.CreateElement("products"); 
     doc.AppendChild(productsNode); 


     { 
      XmlNode productNode = doc.CreateElement("product"); 
      XmlAttribute productAttribute = doc.CreateAttribute("id"); 
      productAttribute.Value = "1"; 
      productNode.Attributes.Append(productAttribute); 
      productsNode.AppendChild(productNode); 

      XmlNode nameNode = doc.CreateElement("Name"); 
      nameNode.AppendChild(doc.CreateTextNode("Java")); 
      productNode.AppendChild(nameNode); 

      XmlNode priceNode = doc.CreateElement("Price"); 
      priceNode.AppendChild(doc.CreateTextNode("Free")); 
      productNode.AppendChild(priceNode); 

      AddUpdateAppSettings("filename", "abc.xml"); 


     } 
    } 
static void AddUpdateAppSettings(string key, string value) 
     { 
      try 
      { 
       var configFile = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); 
       var settings = configFile.AppSettings.Settings; 
       if (settings[key] == null) 
       { 
        settings.Add(key, value); 
       } 
       else 
       { 
        settings[key].Value = value; 
       } 
       configFile.Save(ConfigurationSaveMode.Modified); 
       ConfigurationManager.RefreshSection(configFile.AppSettings.SectionInformation.Name); 
      } 
      catch (ConfigurationErrorsException) 
      { 
       Console.WriteLine("Error writing app settings"); 
      } 
     } 

我必须编写XML文件C:\ Users \ saket.parasar.jha“使用c#...请帮助我,我是这个主题的新手。我尝试了很多,但无法保存该文件。

+0

您收到的错误是什么? – Elph

+0

在一个完全不相关的话题上,我认为''C:\\ Users \\ saket.parasar.jha“'不是保存文件的好地方。首先,如果Windows语言不是en,则此路径将无效。其次,该文件夹是所有用户目录的根目录,通常不用于单个文件。如果你想保存应用程序特定的文件,你可以使用AppData。 – mcy

回答

0

为什么你不保存你的XmlDocument?像

doc.Save("C:\\Users\\saket.parasar.jha\\abc.xml"); 
+0

我必须使用app.config文件保存文件,以便应用程序也可以在其他计算机中使用 –

1

首先,您不能以编程方式修改app.config文件。在您的应用程序运行时,内部设置永远不会改变。这些设置就像“预先启动”。如果您需要任何用户可修改的设置,请使用设置文件添加>新建项目>常规>设置文件),扩展名为* .settings。另外,我没有看到你试图从你的配置文件中获取你的设置,你只能将它们保存在那里(但是你不能这么做,原因在上面)。 正确地获得您的路径后,您可以将文件保存在那里。

P.S .:不允许修改App.config,因为它与应用程序位于同一个目录中(修饰名称如MyApplication.exe.config);当您的应用程序安装在目标系统上时,目标目录很可能是“程序文件”。如你所知,任何修改配置的尝试都需要提升权限(如管理员的权限)。这意味着你的应用程序非常不友好。