【问题标题】:Where should my cross-platform FireMonkey app store its settings?我的跨平台 FireMonkey 应用程序应该在哪里存储其设置?
【发布时间】:2015-09-23 15:02:54
【问题描述】:

跨平台 FireMonkey 程序应将 INI 文件放在何处的最佳做法是什么? INI 文件是正确的方法吗?

【问题讨论】:

  • 我想知道这是否是我的解决方案:System.IOUtils.TPath 包含系统特定的路径并基于平台进行切换。我需要将它选择的路径与我在这里得到的答案进行匹配,看看这是否有用。

标签: delphi cross-platform settings firemonkey ini


【解决方案1】:

对于 Android:在“共享存储”中

对于 MacOS:在 INI 文件中

https://delphihaven.wordpress.com/2015/06/11/ccr-prefsinifile-on-github/

Chris Rolliston 在 GitHub 上的 CCR.PrefsIniFile(他也在 stackoverflow 上:https://stackoverflow.com/users/2778930/chris-rolliston)

我刚刚发布到 Google Code 上的 Android、iOS 和 OS X 的原生 Preferences API 包装器现在在 GitHib 上发布:

https://github.com/chrisrolliston/CCR.PrefsIniFile

Android 和 Apple 版本现在也应该在 XE8 中编译。

【讨论】:

  • Chris 的解决方案不仅仅是解决“我的存储位置”问题。这看起来是我最好的选择。
【解决方案2】:

如果您正在寻找一个适合所有平台的位置,那么恐怕您找不到它。

您会看到每个平台对设置文件的存储位置都有自己的偏好。

因此,您应该阅读每个平台的指南并确保您的程序使用这些位置。

如果不这样做并尝试将设置保存在某个不同的文件夹中,可能会完全失败,因为许多平台限制了您的应用程序可以访问的文件夹。


现在你应该使用哪种格式?这应该是 INI 文件还是其他文件?

在 Windows 上,使用哪种格式完全取决于您。您可以使用系统注册表、INI 文件(很常见)、XML 文件(最近变得很常见)甚至是 Delphi 能够处理的一些自定义格式,例如类型文件(二进制文件)。

但这并不适用于所有平台。某些平台甚至可能会限制您存储设置的格式。

因此,您应该再次阅读有关此问题的平台偏好并进行调整。

【讨论】:

    【解决方案3】:

    在 Windows 中,INI 文件作为一种快速、易于使用的方法变得无处不在。但是随着它们变得越来越大,它们变得越来越慢,并且很难实现结构化存储。因此,从 INI 文件转向 Registry/Registries。但这不是跨平台的选项,因此有一些驱动器返回到 INI 文件结构,但根据大小,这仍然可能很慢。我见过的更有趣的方法之一是在这个技能冲刺中,它(错误地)使用 JSON 来创建与旧 INI 文件等效的文件(并且也允许结构)。见这里JSON - the new INI file。至于在哪里,我认为您需要阅读每个目标的建议,因为每个目标的推荐位置可能不同。

    【讨论】:

    • 我经常使用 JSON。我计划在这种情况下使用名称/值对,因为我正在通过 TStringLists 读取/写入,并且为了简单起见,我已经习惯于保留所有名称/值。
    猜你喜欢
    • 2011-11-18
    • 2020-10-04
    • 2010-09-08
    • 2011-05-15
    • 1970-01-01
    • 2011-02-15
    • 2012-03-07
    • 2010-10-21
    • 2013-02-12
    相关资源
    最近更新 更多