Når du skal gemme noget indhold, der er relateret til dit Delphi-ansøgning på brugerens harddisk skal du passe på understøttelsen til tilstandsadskillelse af brugerdata, brugerindstillinger og computerindstillinger.
For eksempel mappen "Application Data" i vinduer skal bruges til at gemme applikationsspecifikke dokumenter som f.eks INI-filer, applikationstilstand, temp-filer eller lignende.
Du bør aldrig bruge hårdkodede stier til bestemte placeringer, f.eks. "C: \ Program Files", da dette muligvis ikke fungerer på andre versioner af Windows, fordi placeringen af mapper og mapper kan ændres med forskellige versioner af Windows.
SHGetFolderPath Windows API-funktion
SHGetFolderPath er tilgængelig i SHFolder enhed. SHGetFolderPath henter den fulde sti til en kendt identificeret mappe.
Her er en brugerdefineret indpakningsfunktion omkring SHGetFolderPath API for at hjælpe dig med at få nogen af standardmapperne til alle eller den aktuelt loggede Windows-bruger.
Her er et eksempel på at bruge funktionen SHGetFolderPath:
- Slip en TRadioButtonGroup (navn: "RadioGroup1") på en formular
- Slip et TLabel (navn: "Label1") på en formular
- Føj 5 elementer til radiogruppen:
- "[Aktuel bruger] \ Mine dokumenter"
- "Alle brugere \ Application Data"
- "[Brugerspecifik] \ Application Data"
- "Programfiler"
- "Alle brugere \ dokumenter"
- Håndter RadioGroups OnClick-begivenhed som:
Bemærk: "[Aktuel bruger]" er navnet på den aktuelt loggede Windows-bruger.
Bemærk: SHGetFolderPath er et supersæt af SHGetSpecialFolderPath.
Du skal ikke gemme applikationsspecifikke data (såsom midlertidige filer, brugerpræferencer, applikationskonfigurationsfiler osv.) I mappen Mine dokumenter. Brug i stedet en applikationsspecifik fil, der er placeret i en gyldig Application Data-mappe.
Føj altid en undermappe til den sti, som SHGetFolderPath returnerer. Brug følgende konvention: "\ Programdata \ Firmanavn \ Produktnavn \ Produktversion".