Есть ли у Microsoft документ с рекомендациями по хранению данных приложений и пользовательских данных на разных платформах Windows?

StackOverflow https://stackoverflow.com/questions/1507923

  •  19-09-2019
  •  | 
  •  

Вопрос

При создании приложения, которое будет ориентировано на многие версии Windows, как лучше всего определить, где должны храниться данные конкретного приложения?В частности:

  • Данные, относящиеся к конкретному приложению (например,данные конфигурации приложения)
  • Пользовательские данные / настройки

Я знаю, что, например, в Windows Vista есть переменные среды, такие как %APPDATA%, которые можно было бы использовать, но как насчет Windows 7, Windows XP, Windows 98?

Мой главный вопрос заключается в том, есть ли у Microsoft документ с рекомендациями для этого, в котором описываются расположения файловой системы для различных типов данных (приложение противпользователь) и последствия для безопасности, которые необходимо учитывать при чтении / записи в эти местоположения?

Мне также интересно, как это относится не только к .СЕТЕВЫМ приложениям (где можно использовать ApplicationSettingsBase), но и к неуправляемым приложениям на C / C ++.

Спасибо Паксу и Ремусу за оба замечательных ответа.Я также нашел этот элемент (специфичный для XP).:

Как написать приложение для Windows XP, которое хранит данные пользователя и приложения в правильном месте, используя Visual C ++

Это было полезно?

Решение

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

Он также содержит ссылки на функции, которые следует использовать для получения этих специальных путей к папкам.

Обратите внимание, что начиная с Vista метод немного изменился.Теперь он использует KNOWNFOLDERID вместо CSIDL и функции тоже изменились.Видеть здесь.

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

Другие советы

Они обычно описываются в Программа с логотипом программного обеспечения Windows (ссылка не работает).Ссылка приведена на документ "Требования к логотипу Windows 7", но аналогичные документы существуют для XP, Windows 2003, Vista и Windows 2008.В разделе "Технические требования" вы найдете некоторую информацию, которую вы ищете:

Все данные приложения, которые должны быть доступны пользователям на компьютере , должны храниться внутри ProgramData

Все данные приложения, принадлежащие исключительно определенному пользователю и не подлежащие передаче другим пользователям компьютера, должны храниться в Users\<username>\AppData

При установке “для каждой машины” пользовательские данные должны быть записаны при первом запуске, а не во время установки.Это происходит потому что нет правильного пользователя местоположение для хранения данных во время установки.

Редактировать:

Пользователи Windows 10, обратите внимание на Требования к сертификации для настольных приложений Windows (раздел 10)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top