Delphi Programming User и Application Data Storage

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

Например, папка «Данные приложения» в Windows следует использовать для хранения документов, относящихся к приложениям, таких как INI файлы, состояние приложения, временные файлы или аналогичные.

Вы никогда не должны использовать жестко запрограммированные пути к определенным местам, таким как «c: \ Program Files», так как это может не работать на другие версии Windows, потому что расположение папок и каталогов может меняться в зависимости от версии Окна.

Функция Windows API SHGetFolderPath

SHGetFolderPath доступен в SHFolder Блок. SHGetFolderPath извлекает полный путь к определенной идентифицированной папке.

Вот пользовательская функция обертки вокруг SHGetFolderPath API чтобы помочь вам получить любую из стандартных папок для всех или текущего пользователя Windows.

instagram viewer

Вот пример использования функции SHGetFolderPath:

  • Удалите группу TRadioButtonGroup (имя: «RadioGroup1») на форме
  • Перетащите TLabel (имя: «Label1») на форму
  • Добавьте 5 элементов в группу радио:
    • «[Текущий пользователь] \ Мои документы»
    • «Все пользователи \ Данные приложения»
    • «[Специфично для пользователя] \ Данные приложения»
    • "Программные файлы"
    • «Все пользователи \ Документы»
  • Обработайте событие OnClick RadioGroup как:

Примечание. «[Текущий пользователь]» - это имя текущего пользователя Windows, вошедшего в систему.

Примечание. SHGetFolderPath - это расширенный набор SHGetSpecialFolderPath.

Вы не должны хранить данные приложения (такие как временные файлы, пользовательские настройки, файлы конфигурации приложения и т. Д.) В папке «Мои документы». Вместо этого используйте специфичный для приложения файл, который находится в допустимой папке Application Data.

Всегда добавляйте подпапку к пути, который возвращает SHGetFolderPath. Используйте следующее соглашение: «\ Application Data \ Название компании \ Имя продукта \ Версия продукта».

instagram story viewer