2011-09-15 14 views
23

Normalmente, con Windows, guardo los datos de mi aplicación en la carpeta del usuario (% appdata%).Con FireMonkey y sus plataformas cruzadas, ¿dónde debería almacenar mis datos de aplicación?

Para ello, utilizo la función ExpandEnvironmentStrings que está vinculada a Windows para obtener la carpeta que necesito, y lo almacene dentro de una subcarpeta mi archivoini.

¿Existe alguna mejor práctica para gestionar eso y cumplir con todas las plataformas compatibles (Windows 32b, 64b & Mac)?


He probado con éxito como ese:

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

Mueva sus hallazgos a una respuesta propia en lugar de editar su pregunta. De esta forma, las personas pueden votar la respuesta y la pregunta por separado. – LachlanG

+1

@LachlanG: En este caso, no estoy de acuerdo. Whiler agregó un ejemplo que muestra el uso de la respuesta que aceptó. En mi humilde opinión, no debería agregar otra respuesta para hacerlo, pero hizo lo correcto al actualizar su pregunta para incluir su verificación de que la respuesta es correcta. – lkessler

+0

@lkessler: ¿Por qué no acaba de agregar un comentario a la respuesta diciendo que ha verificado que funciona? Él ya dejó un comentario diciendo que lo verificaría por sí mismo. Además, en lugar de agregar su código de solución a su pregunta, ¿por qué no edita la respuesta de Linas y coloca allí el código? – LachlanG

Respuesta

22

no has probado XE2 pero probablemente se podría utilizar SysUtils.GetHomePath. También marque IOUtils donde puede encontrar registros útiles (TFile, TPath, TDirectory) para administrar archivos, rutas y directorios. Deben soportar diferentes plataformas.

+0

Thx, reviso y le dejo saber. – Whiler

Cuestiones relacionadas