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

Delphi 我的跨平台FireMonkey应用程序应该在哪里存储其设置?,delphi,cross-platform,settings,firemonkey,ini,Delphi,Cross Platform,Settings,Firemonkey,Ini,跨平台FireMonkey程序应该在哪里放置INI文件的最佳实践是什么?INI文件是正确的方法吗?在windows中,INI文件作为一种快速、易于使用的方法变得无处不在。但是,随着它们变得越来越大,速度变得越来越慢,而且很难实现结构化存储。因此,从INI文件转移到注册表/注册表。但这不是跨平台的选项,因此有一些驱动力回到INI文件结构,但这取决于大小,可能仍然很慢。我见过的一个更有趣的方法是在这个技能冲刺(mis)中,它使用JSON创建与旧INI文件等效的文件(也允许结构)。看这里。至于在哪里,

跨平台FireMonkey程序应该在哪里放置INI文件的最佳实践是什么?INI文件是正确的方法吗?

在windows中,INI文件作为一种快速、易于使用的方法变得无处不在。但是,随着它们变得越来越大,速度变得越来越慢,而且很难实现结构化存储。因此,从INI文件转移到注册表/注册表。但这不是跨平台的选项,因此有一些驱动力回到INI文件结构,但这取决于大小,可能仍然很慢。我见过的一个更有趣的方法是在这个技能冲刺(mis)中,它使用JSON创建与旧INI文件等效的文件(也允许结构)。看这里。至于在哪里,我认为您需要阅读每个目标的建议,因为每个目标的建议位置可能不同。

如果您正在搜索一个适合所有平台的位置,恐怕您找不到它

您可以看到,每个平台在存储设置文件的位置上都有自己的首选项

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

否则,尝试将设置保存到其他文件夹中可能会完全失败,因为许多平台限制了应用程序可以访问的文件夹


那么你应该使用哪种格式呢?这应该是INI文件还是其他文件

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

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

因此,您应该再次阅读关于此问题的平台首选项并进行调整。

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

对于MacOS:在INI文件中

Chris Rolliston在GitHub上的CCR.prefsini文件(他也在stackoverflow上:)

只是一篇小帖子,上面说我不久前发布到Google Code的Android、iOS和OS X的本机首选项API包装器现在在GitHib上:

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


我经常使用JSON。在这种情况下,我计划使用名称/值对,因为我通过TStringLists进行读/写,并且我已经习惯于保留所有名称/值以简化。我想知道这是否是我的解决方案:System.IOUtils.TPath具有特定于系统的路径和基于平台的开关。我需要将它选择的路径与我在这里得到的答案相匹配,看看这是否有用。这看起来是我最好的选择。