Где в FireMonkey и его кроссплатформенных устройствах хранить данные моего приложения? - PullRequest
23 голосов
/ 15 сентября 2011

Обычно в Windows я сохраняю данные своего приложения в папке пользователя (% appdata% ).

Для этого я использую функцию ExpandEnvironmentStrings, связанную с Windowsчтобы получить нужную папку, и я храню в подпапке мой inifile .

. Есть ли лучший способ управлять этим и быть совместимым со всеми поддерживаемыми платформами (Windows 32b, 64b &Mac)?


Я успешно проверил вот так:

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;

1 Ответ

22 голосов
/ 15 сентября 2011

Не пробовал XE2, но, вероятно, вы могли бы использовать SysUtils.GetHomePath . Также отметьте IOUtils, где вы можете найти полезные записи ( TFile , TPath , TDirectory ) для управления файлами, путями и каталогами. Они должны поддерживать разные платформы.

...