我的跨平台 FireMonkey 应用程序应该在哪里存储它的设置?

Where should my cross-platform FireMonkey app store its settings?

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

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

如果您要搜索适合所有平台的位置,恐怕找不到。

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

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

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


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

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

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

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

对于Android:在"shared storage"

对于 MacOS:在 INI 文件中

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

CCR.PrefsIniFile 发表于 Chris Rolliston 的 GitHub(他也在 Whosebug 上:https://whosebug.com/users/2778930/chris-rolliston

Just a small post to say the the native Preferences API wrappers for Android, iOS and OS X I published to Google Code a while back are now on GitHib:

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

Both the Android and Apple versions should also now compile in XE8.