Когда вам нужно хранить некоторый контент, связанный с вашим Приложение Delphi на жестком диске пользователя следует позаботиться о поддержке разделения состояний пользовательских данных, пользовательских настроек и настроек компьютера.
Например, папка «Данные приложения» в Windows следует использовать для хранения документов, относящихся к приложениям, таких как INI файлы, состояние приложения, временные файлы или аналогичные.
Вы никогда не должны использовать жестко запрограммированные пути к определенным местам, таким как «c: \ Program Files», так как это может не работать на другие версии Windows, потому что расположение папок и каталогов может меняться в зависимости от версии Окна.
Функция Windows API SHGetFolderPath
SHGetFolderPath доступен в SHFolder Блок. SHGetFolderPath извлекает полный путь к определенной идентифицированной папке.
Вот пользовательская функция обертки вокруг SHGetFolderPath API чтобы помочь вам получить любую из стандартных папок для всех или текущего пользователя Windows.
Вот пример использования функции SHGetFolderPath:
- Удалите группу TRadioButtonGroup (имя: «RadioGroup1») на форме
- Перетащите TLabel (имя: «Label1») на форму
- Добавьте 5 элементов в группу радио:
- «[Текущий пользователь] \ Мои документы»
- «Все пользователи \ Данные приложения»
- «[Специфично для пользователя] \ Данные приложения»
- "Программные файлы"
- «Все пользователи \ Документы»
- Обработайте событие OnClick RadioGroup как:
Примечание. «[Текущий пользователь]» - это имя текущего пользователя Windows, вошедшего в систему.
Примечание. SHGetFolderPath - это расширенный набор SHGetSpecialFolderPath.
Вы не должны хранить данные приложения (такие как временные файлы, пользовательские настройки, файлы конфигурации приложения и т. Д.) В папке «Мои документы». Вместо этого используйте специфичный для приложения файл, который находится в допустимой папке Application Data.
Всегда добавляйте подпапку к пути, который возвращает SHGetFolderPath. Используйте следующее соглашение: «\ Application Data \ Название компании \ Имя продукта \ Версия продукта».