Memorizza i dati delle applicazioni utente e Delphi nella posizione corretta

Quando è necessario archiviare alcuni contenuti correlati all'applicazione Delphi sul disco rigido dell'utente, è necessario occuparsi del supporto per la separazione dello stato dei dati utente, delle impostazioni utente e delle impostazioni del computer.

Ad esempio, la cartella "Dati applicazioni" in Windows deve essere utilizzata per archiviare documenti specifici dell'applicazione come file INI, stato dell'applicazione, file temporanei o simili.

Non utilizzare mai percorsi codificati in percorsi specifici, ad esempio "c: \ Programmi", poiché potrebbe non funzionare su altre versioni di Windows poiché il percorso di cartelle e directory può cambiare con versioni diverse di Windows.

La funzione API di Windows SHGetFolderPath

SHGetFolderPath è disponibile in SHFolder unità. SHGetFolderPath recupera il percorso completo di una cartella nota identificata.

Ecco una funzione wrapper personalizzata attorno all'API SHGetFolderPath per aiutarti a ottenere una delle cartelle standard per tutti o l'utente Windows attualmente registrato.

Ecco un esempio dell'uso della funzione SHGetFolderPath:

  • Rilascia un TRadioButtonGroup (nome: "RadioGroup1") su un modulo
  • Rilascia un TLabel (nome: "Etichetta1") su un modulo
  • Aggiungi 5 elementi al gruppo radio:
    • "[Utente corrente] \ Documenti"
    • "Tutti gli utenti \ Dati applicazioni"
    • "[Specifico dell'utente] \ Dati applicazioni"
    • "File di programma"
    • "Tutti gli utenti \ Documenti"
  • Gestisci l'evento OnClick di RadioGroup come:

Nota: "[Utente corrente]" è il nome dell'utente Windows attualmente connesso.

Nota: SHGetFolderPath è un superset di SHGetSpecialFolderPath.

Non è necessario archiviare dati specifici dell'applicazione (come file temporanei, preferenze dell'utente, file di configurazione dell'applicazione e così via) nella cartella Documenti. Utilizzare invece un file specifico dell'applicazione che si trova in una cartella Dati applicazioni valida.

Aggiungi sempre una sottocartella al percorso restituito da SHGetFolderPath. Utilizzare la seguente convenzione: "\ Dati applicazioni \ Nome azienda \ Nome prodotto \ Versione prodotto".