2015-10-26 3 views
0

Я должен сохранить файл с помощью app.configКак сохранить новый файл Xml с помощью app.config?

<?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 предписанной path-:

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# ... pls помогите мне, я новичок в этой теме. Я много пробовал, но не смог сохранить этот файл.

+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 программно. Настройки внутри никогда не изменяются во время работы вашего приложения. Эти настройки похожи на «pre-launch». Если вам нужны какие-либо настройки, которые могут быть изменены пользователем, используйте Файл настроек (Add> New Item> General> Файл настроек), который имеет расширение * .settings. Кроме того, я не вижу, как вы пытаетесь получить настройки из своего конфигурационного файла, вы только сохраняете их там (но вы не можете этого сделать, причина выше). После того, как вы получите правильный путь, вы можете сохранить свой файл там.

P.S .: App.config не может быть изменен, поскольку он находится в том же каталоге, что и приложение (с измененным именем, например MyApplication.exe.config); когда приложение установлено в целевой системе, целевой каталог, скорее всего, будет «Program Files». Как вы понимаете, любая попытка изменить конфигурацию потребует повышенных привилегий (например, администратора). Это означает, что ваше приложение ОЧЕНЬ недружелюбное.

Смежные вопросы