Avec FireMonkey et ses multiplateformes, Où dois-je stocker mes données d'application?

Habituellement, avec Windows, j'enregistre les données de mon application dans le dossier utilisateur ( % appdata % ).

Pour cela, j'utilise la fonction ExpandEnvironmentStrings qui est liée à Windows pour obtenir le dossier dont j'ai besoin, et je stocke dans un sous-dossier Mon inifile .

Existe-t-il une meilleure pratique pour gérer cela et être compatible avec toutes les plates-formes prises en charge (Windows 32b, 64b et Mac)?


J'ai testé avec succès comme ça:

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;
23
demandé sur Brian Tompsett - 汤莱恩 2011-09-15 19:28:53

1 réponses

N'a pas essayé XE2 mais vous pourriez probablement utiliser SysUtils.GetHomePath . Vérifiez également IOUtils où vous pouvez trouver de précieux renseignements (TFile, TPath, TDirectory) pour la gestion de fichiers, chemins et répertoires. Ils devraient soutenir différentes plates-formes.

22
répondu Linas 2011-09-15 15:47:51