Где я должен положить файлы конфигурации в .NET? - PullRequest
1 голос
/ 08 октября 2009

В .NET как мне получить доступ к папке для хранения данных конфигурации, специфичных для текущего компьютера или пользователя (чтобы избежать жесткого кодирования пути)?

(связанный :) В каком месте лучше всего хранить файл конфигурации программы в WINDOWS?

Ответ на вопрос ... кстати, вот типичный вывод WinXP

foreach (Environment.SpecialFolder f in 
         Enum.GetValues(typeof(Environment.SpecialFolder)))
    Debug.WriteLine(string.Format("{0,16}: {1}", 
                    f.ToString(), Environment.GetFolderPath(f)));
         Desktop: C:\Documents and Settings\user\Desktop
        Programs: C:\Documents and Settings\user\Start Menu\Programs
        Personal: C:\Documents and Settings\user\My Documents
        Personal: C:\Documents and Settings\user\My Documents
       Favorites: C:\Documents and Settings\user\Favorites
         Startup: C:\Documents and Settings\user\Start Menu\Programs\Startup
          Recent: C:\Documents and Settings\user\Recent
          SendTo: C:\Documents and Settings\user\SendTo
       StartMenu: C:\Documents and Settings\user\Start Menu
         MyMusic: C:\Documents and Settings\user\My Documents\My Music
DesktopDirectory: C:\Documents and Settings\user\Desktop
      MyComputer: 
       Templates: C:\Documents and Settings\user\Templates
 ApplicationData: C:\Documents and Settings\user\Application Data
LocalApplicationData: C:\Documents and Settings\user\Local Settings\Application Data
   InternetCache: C:\Documents and Settings\user\Local Settings\Temporary Internet Files
         Cookies: C:\Documents and Settings\user\Cookies
         History: C:\Documents and Settings\user\Local Settings\History
CommonApplicationData: C:\Documents and Settings\All Users.WINDOWS\Application Data
          System: C:\WINDOWS\system32
    ProgramFiles: C:\Program Files
      MyPictures: C:\Documents and Settings\user\My Documents\My Pictures
CommonProgramFiles: C:\Program Files\Common Files

Ответы [ 3 ]

1 голос
/ 08 октября 2009
string path = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);

Смотрите здесь все возможные значения SpecialFolder

1 голос
/ 08 октября 2009

Вы можете использовать Environment.GetFolderPath () , чтобы получить путь к специальным папкам в системе, независимо от их расположения, включая стандартные места для папок конфигурации и файлов, которые будут храниться:

// Returns the user specific config folder
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
// Returns the computer specific config folder
Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData);

Затем вы можете добавить строку в папку вашего приложения и сохранить там свои данные.

1 голос
/ 08 октября 2009

За исключением файла App.config, который должен находиться в папке приложения, вы можете поместить их в любое место. Однако я бы порекомендовал установить логически организованную структуру папок в папке приложения для всех необходимых файлов приложения, и папка « config » для всех файлов конфигурации, безусловно, является хорошим началом. на это.

Просто помните, что если файл конфигурации , а не в папке приложения, вы должны поместить строку перенаправления в app.config, чтобы сообщить подсистеме конфигурации, где ее искать ...

 <appSettings configSource="Config\AppSettings.config" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...