Имеется ли в Microsoft документ с рекомендациями по хранению данных приложений и данных пользователей на разных платформах Windows? - PullRequest
18 голосов
/ 02 октября 2009

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

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

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

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

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

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

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

Ответы [ 2 ]

8 голосов
/ 02 октября 2009

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

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

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

В установках «на машину» пользователь данные должны быть записаны при первом запуске и не во время установки. Это потому что нет правильного пользователя место для хранения данных во время установка.

РЕДАКТИРОВАТЬ:

Пользователи Windows 10, ищите Требования сертификации для Windows Desktop Apps (Раздел 10)

8 голосов
/ 02 октября 2009

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

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

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

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

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