2011-09-15 11 views
23

通常、Windowsでは、アプリケーションのデータをユーザーフォルダ(%appdata%)に保存します。FireMonkeyとそのクロスプラットフォームでは、アプリケーションデータはどこに保存する必要がありますか?

私は必要なフォルダを取得するためにWindowsにリンクされたExpandEnvironmentStrings機能を使用し、サブフォルダ内にはの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; 
+0

あなたの質問を編集するのではなく、あなた自身の答えに自分の答えを移動してください。そうすれば、人々は答えに投票し、別々に質問することができます。 – LachlanG

+1

@ LachlanG:この場合、私は同意しません。 Whilerは、彼が受け入れた答えの使用例を加えました。 IMHO彼はそうするために別の答えを加えるべきではありませんが、彼の質問を更新して答えが正しいという彼の検証を含めるのは正しいことでした。 – lkessler

+0

@lkessler:なぜ彼はそれが動作確認されているという答えにコメントを追加しないでください?彼はすでに彼が自分のためにそれをチェックすると言ったコメントを残しました。また、彼の解決策コードを自分の質問に追加するのではなく、Linasの答えを編集してコードをそこに置くのはなぜですか。 – LachlanG

答えて

22

はXE2を試していないが、おそらくあなたはSysUtils.GetHomePathを使用することができます。 IOUtilsもチェックして、ファイル、パス、ディレクトリを管理する便利なレコード(TFileTPathTDirectory)を見つけることができます。彼らは異なるプラットフォームをサポートする必要があります。

+0

Thx、私はチェックしてお知らせします。 – Whiler

関連する問題