使用 FireMonkey 及其跨平台,我应该在哪里存储我的应用程序数据?
Posted
技术标签:
【中文标题】使用 FireMonkey 及其跨平台,我应该在哪里存储我的应用程序数据?【英文标题】:With FireMonkey and its cross-platforms, where should I store my application data? 【发布时间】:2011-11-18 00:06:49 【问题描述】:通常,在 Windows 中,我将应用程序的数据保存在用户文件夹 (%appdata%) 中。
为此,我使用链接到 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;
【问题讨论】:
请将您的发现转移到他们自己的答案中,而不是编辑您的问题。这样人们就可以分别对答案和问题进行投票。 @LachlanG:在这种情况下,我不同意。 Whiler 添加了一个示例,显示了他接受的答案的使用。恕我直言,他不应该为此添加另一个答案,但在更新他的问题以包括他对答案正确的验证方面做了正确的事情。 @lkessler:为什么不在答案中添加评论说他已经验证它有效?他已经发表评论说他会亲自检查。另外,与其将他的解决方案代码添加到他的问题中,不如编辑 Linas 的答案并将代码放在那里。 @LachlanG:如果他没有这个例子,这个评论应该是合适的。但是示例在 cmets 中不能很好地格式化。恕我直言,最好用自己对答案的解释来编辑自己的问题,而不是编辑别人的答案。 @lkessler:这正是我这样做的原因...... 【参考方案1】:没有尝试过 XE2,但可能你可以使用SysUtils.GetHomePath。还要检查IOUtils
,您可以在其中找到用于管理文件、路径和目录的有用记录(TFile、TPath、TDirectory)。它们应该支持不同的平台。
【讨论】:
谢谢,我检查并告诉你。以上是关于使用 FireMonkey 及其跨平台,我应该在哪里存储我的应用程序数据?的主要内容,如果未能解决你的问题,请参考以下文章
[原创] Firemonkey 解决 Canvas 几何绘图质量问题(移动平台)