Delphi Програмиране за съхранение на данни за потребители и приложения

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

Например папката "Данни за приложения" в Windows трябва да се използва за съхранение на специфични за приложения документи като INI файлове, състояние на приложение, темп файлове или други подобни.

Никога не трябва да използвате твърдо кодирани пътеки до конкретни места, например "c: \ Program Files", тъй като това може да не работи на други версии на Windows, тъй като местоположението на папки и директории може да се променя с различни версии на Windows.

Функцията за API на Windows SHGetFolderPath

SHGetFolderPath е наличен в SHFolder мерна единица. SHGetFolderPath извлича пълния път на идентифицирана известна папка.

Ето функция за персонализирана обвивка около SHGetFolderPath API за да ви помогне да получите някоя от стандартните папки за всички или в момента регистрирания потребител на Windows.

instagram viewer

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

  • Пуснете TRADioButtonGroup (име: "RadioGroup1") във формуляр
  • Пуснете TLabel (име: "Label1") на формуляр
  • Добавете 5 елемента към радио групата:
    • „[Настоящ потребител] \ Моите документи“
    • „Всички потребители \ Данни за приложение“
    • „[Специфични за потребителя] \ Данни за приложение“
    • "Програмните файлове"
    • „Всички потребители \ Документи“
  • Обработвайте събитието OnClick на RadioGroup като:

Забележка: "[Current User]" е името на текущо влезлия в Windows потребител.

Забележка: SHGetFolderPath е суперсет от SHGetSpecialFolderPath.

Не трябва да съхранявате специфични за приложението данни (като временни файлове, потребителски предпочитания, файлове за конфигуриране на приложения и т.н.) в папката Мои документи. Вместо това използвайте специфичен за приложение файл, който се намира в валидна папка с данни за приложения.

Винаги добавете подпапка към пътя, който SHGetFolderPath връща. Използвайте следната конвенция: "\ Данни за приложение \ Име на компанията \ Име на продукта \ Версия на продукта".

instagram story viewer