2015-10-26 37 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);當您的應用程序安裝在目標系統上時,目標目錄很可能是「程序文件」。如你所知,任何修改配置的嘗試都需要提升權限(如管理員的權限)。這意味着你的應用程序非常不友好。