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

Если вы развертываете приложение, которое использует файловую базу данных, такую ​​как SQLite или Access-MDB, где файлы базы данных должны быть развернуты на компьютере, учитывая, что приложению потребуется полный доступ к этому местоположению?

Разве в руководствах MS не сказано, что папка %PROGRAMFILES% должна содержать только файлы приложений только для чтения?

Где следует размещать файлы базы данных? В папке %APPDATA%?

1 Ответ

1 голос
/ 23 февраля 2012

Вы определенно должны не использовать каталог Program Files для хранения динамической информации.

Этот блог Windows Перенаправление данных контроля учетных записей пользователей дает хорошую сводку:

Убедитесь, что вы не жестко запрограммировали пути после того, как определили соответствующие местоположения. Вместо этого используйте одну из следующих моделей программирования и API для получения правильных путей к определенным известным папкам Windows:

Собственные приложения C / C ++: используйте функцию SHGetKnownFolderPath, которая извлекает полный путь к известной папке, указанной в KNOWNFOLDERID папки, параметр GUID, указывающий известное местоположение, которое вы хотите получить:

  • FOLDERID_ProgramData - Каталог данных общей программы для всех пользователей
  • FOLDERID_LocalAppData - каталог данных программы для пользователя (без роуминга)
  • FOLDERID_RoamingAppData - каталог данных программы пользователя (роуминг)

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

  • Environment.SpecialFolder.CommonApplicationData - каталог данных общей программы для всех пользователей
  • Environment.SpecialFolder.LocalApplicationData - каталог данных программы для пользователя (без роуминга)
  • Environment.SpecialFolder.ApplicationData - каталог данных программы пользователя (роуминг)

Если ни один из вышеупомянутых параметров недоступен, используйте переменную окружения:

  • % ALLUSERSPROFILE% - каталог данных общей программы для всех пользователей
  • % LOCALAPPDATA% - Каталог данных программы для пользователя (без роуминга) - Windows Vista или более поздняя версия
  • % APPDATA% - Каталог данных программы пользователя (в роуминге) - Windows Vista или более поздняя версия
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...