När du behöver lagra något innehåll relaterat till ditt Delphi-ansökan på användarens hårddisk bör du ta hand om stödet för tillståndsdelning av användardata, användarinställningar och datorinställningar.
Till exempel mappen "Application Data" i Windows bör användas för att lagra applikationsspecifika dokument som t.ex. INI-filer, applikationstillstånd, tempfiler eller liknande.
Du bör aldrig använda hårkodade sökvägar till specifika platser, till exempel "c: \ Programfiler", eftersom detta kanske inte fungerar på andra versioner av Windows eftersom platsen för mappar och kataloger kan ändras med olika versioner av Windows.
SHGetFolderPath Windows API-funktion
SHGetFolderPath är tillgängligt i SHFolder enhet. SHGetFolderPath hämtar hela sökvägen för en känd identifierad mapp.
Här är en anpassad omslagsfunktion runt SHGetFolderPath API för att hjälpa dig få någon av standardmapparna för alla eller för närvarande inloggade Windows-användare.
Här är ett exempel på att använda funktionen SHGetFolderPath:
- Släpp en TRadioButtonGroup (namn: "RadioGroup1") på ett formulär
- Släpp en TLabel (namn: "Label1") på ett formulär
- Lägg till 5 objekt i radiogruppen:
- "[Aktuell användare] \ Mina dokument"
- "Alla användare \ Ansökningsdata"
- "[Användarspecifikt] \ applikationsdata"
- "Program filer"
- "Alla användare \ dokument"
- Hantera RadioGroups OnClick-händelse som:
Obs: "[Aktuell användare]" är namnet på den för närvarande inloggade Windows-användaren.
Obs: SHGetFolderPath är en superset av SHGetSpecialFolderPath.
Du bör inte lagra applikationsspecifik data (som tillfälliga filer, användarinställningar, programkonfigurationsfiler osv.) I mappen Mina dokument. Använd istället en applikationsspecifik fil som finns i en giltig applikationsdatamapp.
Lägg alltid en undermapp till den sökväg som SHGetFolderPath returnerar. Använd följande konvention: "\ Application Data \ Firmanamn \ Produktnamn \ Produktversion".