Environment.SpecialFolderPath против .NET Settings (& разрешение переменных среды в привязке текстового поля) - PullRequest
1 голос
/ 12 июля 2011

Я новичок в C #, и я искал информацию о лучших методах разработки приложений на C #.

Я хочу иметь настройку приложения, которая определяет, куда приложение будет записывать свои файлы журналов и отчеты. Я хочу, чтобы по умолчанию это %USERPROFILE%\Documents\<Vendor>\<Tool>, так как эти файлы созданы для того, чтобы пользователь мог на самом деле просматривать и распоряжаться ими на досуге. Но если пользователь хочет, чтобы файлы были записаны в другом месте, я хочу сохранить их предпочтения.

Мои исследования показывают, что:

  1. Обычно не рекомендуется напрямую использовать переменные окружения. Вместо этого рекомендуется использовать метод Environment.GetFolderPath и перечисление Environment.SpecialFolders , чтобы получить доступ к специальным расположениям в Windows, таким как профиль пользователя.
  2. Но рекомендуется использовать Пользовательские настройки приложения .NET для сохранения настроек из одного сеанса в другой.

Есть ли какой-нибудь хороший способ примирить передовую практику 1 и передовую практику 2? Возможно ли на самом деле сохранить это расположение по умолчанию в настройках приложения совместимым способом, не ссылаясь на переменную среды% USERPROFILE%?

Смежный вопрос: Предположим, я сохраняю %USERPROFILE%\Documents\<vendor>\<tool> в качестве значения по умолчанию для настройки. Я хочу, чтобы значение параметра было привязано к текстовому полю в главной форме приложения (с помощью кнопки «Обзор», чтобы выбрать новый путь). Как я могу привязать параметр к текстовому полю таким образом, чтобы% USERPROFILE% был преобразован в обычный путь файловой системы (например, C:\Users\<username>\Documents\<vendor>\<tool>) для целей отображения пользователю?

1 Ответ

1 голос
/ 22 августа 2011

Я думаю, что хранение путей с переменными среды - это на самом деле лучший способ ссылаться на специальную папку в виде строки и при этом делать путь легко редактируемым пользователем, если он / она решит это сделать.

Переменные среды можно преобразовать в простую строку в .NET, вызвав метод Environment.ExpandEnvironmentVariables .Вы можете использовать этот метод непосредственно перед представлением пути в вашем TextBox и, таким образом, сделать его легко редактируемым для пользователя.Я полагаю, что после того, как пользователь настроит путь, вы можете сохранить его как абсолютный путь.

...