Speichern Sie Benutzer- und Delphi-Anwendungsdaten am richtigen Speicherort

Wenn Sie Inhalte zu Ihrer Delphi-Anwendung auf der Festplatte des Benutzers speichern müssen, sollten Sie darauf achten, dass Benutzerdaten, Benutzereinstellungen und Computereinstellungen nicht vom Status getrennt werden.

Beispielsweise sollte der Ordner "Anwendungsdaten" in Windows verwendet werden, um anwendungsspezifische Dokumente wie INI-Dateien, Anwendungsstatus, temporäre Dateien oder ähnliches zu speichern.

Sie sollten niemals fest codierte Pfade zu bestimmten Speicherorten verwenden, z. B. "c: \ Programme", da dies in anderen Windows-Versionen möglicherweise nicht funktioniert, da sich der Speicherort von Ordnern und Verzeichnissen in verschiedenen Windows-Versionen ändern kann.

Die SHGetFolderPath Windows API-Funktion

Der SHGetFolderPath ist im verfügbar SHOrdner Einheit. SHGetFolderPath ruft den vollständigen Pfad eines bekannten identifizierten Ordners ab.

Im Folgenden finden Sie eine benutzerdefinierte Wrapperfunktion für die SHGetFolderPath-API, mit der Sie einen der Standardordner für alle oder den aktuell angemeldeten Windows-Benutzer abrufen können.

Hier ist ein Beispiel für die Verwendung der SHGetFolderPath-Funktion:

  • Legen Sie eine TRadioButtonGroup (Name: "RadioGroup1") in einem Formular ab
  • Legen Sie ein TLabel (Name: "Label1") in einem Formular ab
  • Fügen Sie der Radiogruppe 5 Elemente hinzu:
    • "[Aktueller Benutzer] \ Eigene Dateien"
    • "Alle Benutzer \ Anwendungsdaten"
    • [Benutzerspezifisch] \ Anwendungsdaten
    • "Programmdateien"
    • "Alle Benutzer \ Dokumente"
  • Behandeln Sie das OnClick-Ereignis der RadioGroup wie folgt:

Hinweis: "[Aktueller Benutzer]" ist der Name des aktuell angemeldeten Windows-Benutzers.

Hinweis: Der SHGetFolderPath ist eine Obermenge des SHGetSpecialFolderPath.

Sie sollten keine anwendungsspezifischen Daten (wie temporäre Dateien, Benutzereinstellungen, Anwendungskonfigurationsdateien usw.) im Ordner Eigene Dateien speichern. Verwenden Sie stattdessen eine anwendungsspezifische Datei, die sich in einem gültigen Anwendungsdatenordner befindet.

Fügen Sie immer einen Unterordner an den Pfad an, den SHGetFolderPath zurückgibt. Verwenden Sie die folgende Konvention: "\ Anwendungsdaten \ Firmenname \ Produktname \ Produktversion".