Где хранить файлы данных программ Windows?

Моя программа содержит файл sql lite db, который моя программа создает после первого запуска, а затем сохраняет данные в приложении appon appon. База данных создается за определенный период времени. Файл db создается в каталоге установки программы

Я должен обновлять приложение на регулярной основе, когда исправлены ошибки, поэтому в основном я публикую новый установщик MSI, установщик удаляет старые установочные файлы, кроме файла db, и устанавливает новые файлы программ.

Некоторые пользователи не устанавливают его в папку по умолчанию, поэтому в выбранном им месте файл db отсутствует.

Я хочу знать, нормально ли хранить файлы данных в какой-либо папке с данными программы за пределами установочного каталога? так что каждое новое обновление моей программы может получить доступ к данным из этой папки данных программы ..?

Есть ли какой-либо программный каталог данных в windows xp, vista и 7? и как получить доступ к нему в C #

Спасибо,

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

Обычно я использую семенную базу данных в приложении и копирую ее в папку в папке Environment.SpecialFolder.ApplicationData при запуске приложения. Все данные пользователя хранятся в копии; если пользователь удаляет приложение, семенная firebase database удаляется, но данные пользователя остаются. См. Этот ответ SO для примера.

Посмотрите здесь, чтобы определить правильное место для ваших данных.

Я бы проголосовал за истребителя

  • ApplicationData (текущий профиль для пользователей)
  • CommonApplicationData (все пользователи на локальной машине)
  • LocalApplicationData (текущий пользователь на локальном компьютере)

Получите папку по своему выбору с помощью

 Environment.GetFolderPath(Environment.SpecialFolder.xxx)) 

Не следует хранить данные в папке установки. Попробуйте это . Специальные папки предназначены для того, чтобы вы могли хранить данные такого типа. Существуют также настройки приложения, которые доступны для доступа и обеспечивают простой способ хранения пары значений ключа пользователя, информации .