Есть ли у Microsoft документ с рекомендациями по хранению данных приложений и пользовательских данных на разных платформах Windows?
Вопрос
При создании приложения, которое будет ориентировано на многие версии Windows, как лучше всего определить, где должны храниться данные конкретного приложения?В частности:
- Данные, относящиеся к конкретному приложению (например,данные конфигурации приложения)
- Пользовательские данные / настройки
Я знаю, что, например, в Windows Vista есть переменные среды, такие как %APPDATA%, которые можно было бы использовать, но как насчет Windows 7, Windows XP, Windows 98?
Мой главный вопрос заключается в том, есть ли у Microsoft документ с рекомендациями для этого, в котором описываются расположения файловой системы для различных типов данных (приложение противпользователь) и последствия для безопасности, которые необходимо учитывать при чтении / записи в эти местоположения?
Мне также интересно, как это относится не только к .СЕТЕВЫМ приложениям (где можно использовать ApplicationSettingsBase), но и к неуправляемым приложениям на C / C ++.
Спасибо Паксу и Ремусу за оба замечательных ответа.Я также нашел этот элемент (специфичный для XP).:
Решение
Есть хорошее описание здесь различных значений CSIDL и папок, к которым они относятся (включая описание, которое, мы надеемся, расскажет вам все, что вам нужно знать).
Он также содержит ссылки на функции, которые следует использовать для получения этих специальных путей к папкам.
Обратите внимание, что начиная с Vista метод немного изменился.Теперь он использует KNOWNFOLDERID
вместо CSIDL
и функции тоже изменились.Видеть здесь.
Вы по-прежнему можете использовать старые функции (на данный момент), так как я считаю, что теперь они являются просто оболочками новых.В какой-то момент в будущем это может измениться.
Другие советы
Они обычно описываются в Программа с логотипом программного обеспечения Windows (ссылка не работает).Ссылка приведена на документ "Требования к логотипу Windows 7", но аналогичные документы существуют для XP, Windows 2003, Vista и Windows 2008.В разделе "Технические требования" вы найдете некоторую информацию, которую вы ищете:
Все данные приложения, которые должны быть доступны пользователям на компьютере , должны храниться внутри
ProgramData
Все данные приложения, принадлежащие исключительно определенному пользователю и не подлежащие передаче другим пользователям компьютера, должны храниться в
Users\<username>\AppData
При установке “для каждой машины” пользовательские данные должны быть записаны при первом запуске, а не во время установки.Это происходит потому что нет правильного пользователя местоположение для хранения данных во время установки.
Редактировать:
Пользователи Windows 10, обратите внимание на Требования к сертификации для настольных приложений Windows (раздел 10)