Путь к файлу через app.config

310
20 октября 2018, 16:10

Знаю как в си шарпе указать путь к файлам, но это будет работать только на моем пк, при переносе программы на другой пк путь будет другой. Как можно правильно прописать путь к файлу через app.config что бы работало на разных пк?

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
    </startup>
  <appSettings>
    <add key="" value=""/>
    </appSettings>
</configuration>
Answer 1

1-е что вам нужно сделать, это добавить параметр в конфигурацию:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
 <startup> 
     <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
 </startup>
  <appSettings>
   <add key="" value=""/>
    <add key="DestFolder" value="C:\Моя_Папка"/>
  </appSettings>
</configuration>

Добавляем ссылку на System.Configuration, в папке ссылки, и не забываем конечно using System.Configuration;

Далее в коде: получение:

var currentConfig = ConfigurationManager.AppSettings.Get("DestFolder");

Задание:

ConfigurationManager.AppSettings.Set("DestFolder", @"C:\Моя_Папка2");

Вот собственно и все что вам нужно.

Answer 2

Есть возможность указать относительный путь к нужному файлу.

К примеру, у вас исполняемый файл называется main.exe. Вам, например, нужно указать путь к файлу texture.png, находящемуся в папке img. Структура решения (проекта) VS для C# будет примерно такой:

/MyProject
    /bin
        main.exe
    /img
        texture.png
    main.cs

Тогда относительный путь к файлу можно определить так:

String path = "..\\img\\texture.png"
READ ALSO
C# WPF закрыть ShowDialog

C# WPF закрыть ShowDialog

Запускаю окно асинхронно в другом потоке

361
Захват, зум и отображение части окна приложения

Захват, зум и отображение части окна приложения

Есть программа оверлей, в которой должно отображаться увеличенное изображение части окна другого приложенияВ какую сторону смотреть, что...

277
C#. не получает cookies

C#. не получает cookies

Делаю авторизациюПосле ввода логина и пароля со страницы логина отправляются cookies и на странице user принимаются и проверяются

228
Привязка из контекстного меню

Привязка из контекстного меню

Есть DataGrid в которой в DataGridRowDetail нужно сделать binding context menu к главной view modelКак это сделать? Оно сейчас пишет что не может найти property непосредственно...

225