2011-09-15 13 views
23

Di solito, con Windows, salvi i dati della mia applicazione nella cartella utente (% appdata%).Con FireMonkey e le sue piattaforme multipiattaforma, dove devo archiviare i dati dell'applicazione?

Per questo, io uso la funzione ExpandEnvironmentStrings che è legata a Windows per ottenere la cartella che ho bisogno, e mi memorizzare all'interno di una sottocartella mia inifile.

Esiste una buona pratica per gestirlo ed essere compatibile con tutte le piattaforme supportate (Windows 32b, 64b & Mac)?


ho testato con successo in quel modo:

procedure TfrmMain.SaveSettings; 
var 
    fnINI: TFileName; 
    ini : TIniFile; 
begin 
    fnINI := IncludeTrailingPathDelimiter(GetHomePath) + IncludeTrailingPathDelimiter(APP_NAME) + ChangeFileExt(APP_NAME, '.ini'); 
    if ForceDirectories(ExtractFilePath(fnINI)) then 
    begin 
    ini := TIniFile.Create(fnINI); 
    try 
     ini.WriteString(INI_CONNECTION, INI_IP, edtIP.Text); 
    finally 
     ini.Free; 
    end; 
    end; 
end; 
+0

Sposta le tue conclusioni a una risposta personale invece di modificare la tua domanda. In questo modo le persone possono votare separatamente la risposta e la domanda. – LachlanG

+1

@LachlanG: In questo caso non sono d'accordo. Whiler ha aggiunto un esempio che mostra l'uso della risposta che ha accettato. IMHO non dovrebbe aggiungere un'altra risposta per farlo, ma ha fatto la cosa giusta aggiornando la sua domanda per includere la sua verifica che la risposta è corretta. – lkessler

+0

@lkessler: Perché non aggiungere un commento alla risposta dicendo che ha verificato che funzioni? Ha già lasciato un commento dicendo che avrebbe controllato da solo. Inoltre, anziché aggiungere il suo codice di soluzione alla sua domanda, perché non modificare la risposta di Linas e inserire il codice lì. – LachlanG

risposta

22

non hanno provato XE2 ma probabilmente si potrebbe usare SysUtils.GetHomePath. Controllare anche IOUtils dove è possibile trovare i record utili (TFile, TPath, TDirectory) per la gestione di file, percorsi e directory. Dovrebbero supportare diverse piattaforme.

+0

Thx, ti controllo e ti faccio sapere. – Whiler

Problemi correlati