Где сохранить текстовые файлы, связанные с проектом? - PullRequest
1 голос
/ 23 сентября 2011

Для тестирования и отладки я просто жестко закодировал пути к файлам для текстовых файлов, которые будут использоваться моим приложением, например,

const string CONFIG_FILE_PATH = @"C:\myconfigfile.txt";

Но я не думаю, что будет хорошей идеей оставить все как есть в бета-версии.

Итак, мне интересно, что будет лучшим местом для сохранения этих файлов конфигурации, которые будут использоваться / считываться приложением? Какие-либо предложения?

Большое спасибо.

Ответы [ 4 ]

6 голосов
/ 23 сентября 2011

Почему бы не сохранить строки в разделе «Настройки» вашего проекта? GRНажмите на свой проект в Solution Explorer, выберите Properties, перейдите в раздел Settings и добавьте новую строку с вашим путем к файлу. Затем в своем коде вы можете получить к нему доступ следующим образом:

using ProjectName.Properties;

var path = Settings.Default.MySetting;

Чтобы изменить настройку:

Settings.Default.MySetting = newPath;
Settings.Default.Save();
0 голосов
/ 23 сентября 2011

Для настроек я бы обязательно использовал файл app.config. Это предложено Microsoft, и, кроме того, это в любом случае самый простой способ обработки настроек приложения.

Для других файлов я бы порекомендовал либо локальный путь приложения, либо путь к роумингу, в зависимости от погоды, вам нужны только локальные данные или нет. Для компактных локальных баз данных я склонен использовать этот подход. Каталог приложений, как предлагает Альбин, плохая идея. Вы не можете быть уверены, что пользователю действительно разрешено выполнять запись в этот каталог и / или в файлы в этом каталоге (т. Е. Приложение было предварительно установлено администратором с повышенными правами).

Для определения местоположения локальных путей используйте

ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal)

и для роумингового тракта

 ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoaming)

Дополнительную информацию о профилях пользователей Windows (например, реальные пути в разных версиях Windows можно найти здесь: http://msdn.microsoft.com/en-us/library/aa372123.aspx

0 голосов
/ 23 сентября 2011

Другой вариант: если тестовый конфигурационный файл предназначен для размещения рядом с вашим исполняемым файлом, вы можете «Добавить» «Существующий элемент ...» в ваш проект и затем изменить его свойства на «Копировать всегда» или «Копировать, если новее» ». Во время отладки исполняемый файл должен быть в состоянии найти копию конфигурации в своем текущем рабочем каталоге.

Это не очень полезное решение, когда нужно много тестировать.

0 голосов
/ 23 сентября 2011

В той же папке, что и исполняемый файл.

Но вы должны рассмотреть возможность использования класса настроек (вы можете прочитать больше здесь ). Visual Studio может автоматически создавать строго типизированную оболочку вокруг раздела в файле app.config. Настройки хранятся в том же файле, что и исполняемый файл, но могут быть переопределены (и сохранены из приложения) в соответствующем файле в профиле пользователя для каждого пользователя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...