Рейтинг:
8
Jochen Arndt
Windows предоставляет специальные папки для таких данных. Используемая папка зависит от типа данных (специфичных для пользователя или приложения).
Используйте Функция SHGetKnownFolderPath (Windows)[^] чтобы получить путь к таким папкам и добавить имя вашего приложения. Перед первым хранением данных необходимо создать папку.
В зависимости от типа данных могут использоваться следующие идентификаторы папок (см. KNOWNFOLDERID (Windows)[^] для полного списка):
На одного пользователя (недоступно другим пользователям)
FOLDERID_Documents
(%USERPROFILE%\Documents)
Для личных документов, созданных вашим приложением.
FOLDERID_LocalAppData
(%USERPROFILE%\AppData\Local)
Для конкретных пользовательских прикладных данных (например, настроек).
FOLDERID_RoamingAppData
(%USERPROFILE%\AppData\Roaming)
Как и выше, но для учетных записей входа в домен (данные совместно используются при входе в несколько систем).
Для всех пользователей
FOLDERID_ProgramData
Для данных общесистемного применения.
FOLDERID_PublicDocuments
Для общедоступных (общих) документов, созданных вашим приложением.
bhavya-hyd
Спасибо, я думаю,что мне нужно использовать AppData / Local или Roaming, но я не знаю, является ли пользователь доменом или нет. Какой из них правильный, если я не знаю?
Jochen Arndt
Я не знаю тип вашего приложения, что хранится и как оно может быть использовано. Так что ответить трудно. Домен означает, что пользователь работает в корпоративной сети, где он входит в систему с помощью доменной службы NT. Когда перемещаемые профили включены, перемещаемая папка перенаправляется в папку на сервере. Это работает за кулисами.
Примером того, что использование перемещаемой папки не имеет смысла, являются настройки, сохраняющие размер окна приложения. При работе в системе с небольшим экраном настройки для широкого экрана недопустимы.
В таких случаях вы должны использовать обе папки: локальную для системных зависимых настроек и перемещаемую папку для системных независимых, но специфичных для приложения настроек.
Если ваши пользователи в основном работают локально (частные или используют домашние версии Windows), используйте локальную папку. Поддержка перемещаемых профилей-это удобный вариант, который можно было бы ожидать для профессионального программного обеспечения, но не всегда требуется (опять же: это зависит от типа хранимых данных/настроек).
bhavya-hyd
Спасибо, что ваши ответы очень полезны. Я думаю, что могу использовать локальный профиль, потому что я думаю, что никто не использует перемещаемый профиль. Я не могу сказать, что делает моя программа, потому что босс запрещает рассказывать о деталях