In Windows, usa %APPDATA%\appname
. Sotto * NIX, usa ~/.appname
. Non utilizzare nomi di directory fissi su entrambe le piattaforme, poiché la directory home dell'utente può essere diversa da quella predefinita (potrebbe essere sulla rete, ad esempio).
Per quanto riguarda il formato, usa quello che pensi sia il migliore. Questa è una decisione che solo tu puoi fare nel contesto della tua applicazione. Non è necessario, e anzi, sconsigliabile, avere un modo "standard" di farlo, se quel modo "standard" non è ciò che è meglio per il tuo particolare programma.
Ad esempio, XML / JSON potrebbe essere un buon metodo per archiviare dati / configurazione utente se l'applicazione utilizza già XML / JSON per qualcos'altro. Ma se si tratta di un semplice file di configurazione, perché aggiungere bloat alla tua app introducendo una dipendenza? In questo caso, probabilmente è meglio usare semplicemente un semplice file di testo con var: value\n
righe.
EDIT: non esiste un "migliore" metodo portatile, dal momento che i sistemi operativi utilizzano convenzioni molto diverse per questo. Non infrangere gli standard OS senza una maledetta buona ragione.
EDIT2: se ti trovi a creare un'impostazione a livello di sistema in /etc
o HKEY_LOCAL_MACHINE
, chiediti se l'impostazione è veramente globale. Quindi attendi 5 minuti e chiediti di nuovo. Se la risposta è ancora sì, allora con tutti i mezzi, fai un'impostazione globale. Ricorda che un utente normale non ha accesso in scrittura a /etc
o HKEY_LOCAL_MACHINE
e, facendo ciò, stai assicurando che qualcuno senza i diritti di amministratore non possa installare la tua app.