Kada trebate pohraniti neki sadržaj koji se odnosi na vaš Delphi aplikacija na tvrdom disku korisnika trebali biste se brinuti za podršku za razdvajanje stanja korisničkih podataka, korisničkih postavki i postavki računala.
Na primjer, mapa "Podaci o aplikaciji" u sustavu Windows Windows treba koristiti za pohranu dokumenata koji se odnose na aplikaciju, kao što su INI datoteke, stanje aplikacije, temp datoteke ili slično.
Nikada ne biste trebali koristiti tvrdo kodirane staze do određenih lokacija, poput "c: \ programske datoteke", jer to možda neće raditi druge verzije sustava Windows jer se lokacije mapa i mapa mogu mijenjati s različitim verzijama sustava Windows Windows.
Funkcija SHGetFolderPath Windows API
SHGetFolderPath je dostupan u SHFolder jedinica. SHGetFolderPath dohvaća puni put identificirane poznate mape.
Evo prilagođene funkcije omota oko SHGetFolderPath API kako bi vam pomogao da dobijete bilo koju od standardnih mapa za sve ili trenutno prijavljenog Windows korisnika.
Evo primjera upotrebe funkcije SHGetFolderPath:
- Na obrazac ispustite TRadioButtonGroup (ime: "RadioGroup1")
- Na obrazac ispustite TLabel (ime: "Label1")
- Dodajte 5 stavki radio grupi:
- "[Trenutni korisnik] \ Moji dokumenti"
- "Svi korisnici \ Podaci o aplikaciji"
- "[Korisnički podaci] \ Podaci o aplikaciji"
- "Programske datoteke"
- "Svi korisnici \ Dokumenti"
- Rukujte događajem RadioGroup OnClick kao:
Napomena: "[trenutni korisnik]" je ime trenutno prijavljenog Windows korisnika.
Napomena: SHGetFolderPath je superset SHGetSpecialFolderPath.
Ne biste trebali pohranjivati podatke specifične za aplikaciju (poput privremenih datoteka, korisničkih postavki, konfiguracijskih datoteka programa itd.) U mapu Moji dokumenti. Umjesto toga, koristite datoteku specifičnu za aplikaciju koja se nalazi u valjanoj mapi podataka s aplikacijama.
Uvijek dodajte podmapu na put koji SHGetFolderPath vraća. Upotrijebite sljedeću konvenciju: "\ Podaci o aplikaciji \ Naziv tvrtke \ Naziv proizvoda \ Verzija proizvoda".