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

4

跨平台 FireMonkey 程序应该把 INI 文件放在哪里是最佳实践?INI 文件是否适合?


我在想这是否是我的解决方案:System.IOUtils.TPath具有特定于系统的路径,并根据平台切换。我需要将其选择的路径与我在这里得到的答案进行匹配,以确定其是否有用。 - Charles Barouch
3个回答

6

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

对于MacOS:在INI文件中

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

CCR.PrefsIniFile 在GitHub上,由Chris Rolliston提供(他也在stackoverflow上:https://stackoverflow.com/users/2778930/chris-rolliston

这只是一个小型的帖子,说明我之前在Google Code上发布的原生Preferences API包装器(适用于Android、iOS和OS X)现在已经在GitHib上了:

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

Android和苹果版本现在应该也可以在XE8中编译。


1
Chris的解决方案不仅仅解决了我的“存储在哪里”的问题。这看起来是我最好的选择。 - Charles Barouch
没有提供许可证:https://github.com/chrisrolliston/CCR.PrefsIniFile/issues/2 - George Birbilis

1
如果你在寻找一个适用于所有平台的位置,我恐怕你会失望。
因为每个平台都有自己偏好的设置文件存储位置。
所以你应该阅读每个平台的指南,并确保你的程序使用这些位置。
如果不这样做,试图将设置保存在一些不同的文件夹中可能完全失败,因为许多平台限制了您的应用程序可以访问哪些文件夹。

关于应该使用哪种格式?是INI文件还是其他格式?

在Windows上,您可以完全自由选择使用哪种格式。您可以使用系统注册表、INI文件(相当常见)、XML文件(最近变得非常普遍)或甚至一些自定义格式,如Typed文件(二进制文件),而Delphi能够处理这些文件。

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

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


0
在Windows中,INI文件已成为一种普遍使用的快速、易于使用的方法。但随着它们变得越来越大,它们变得更慢,并且很难实现结构化存储。因此,人们开始从INI文件转向注册表/注册表。但这对于跨平台来说并不是一个选择,因此又出现了一些回归INI文件结构的趋势,但根据大小的不同,这仍然可能会很慢。我看到的其中一种比较有趣的方法是在这个技能短跑中,它(误)使用JSON创建等效于旧INI文件的文件(并允许结构)。请参见此处JSON - the new INI file。至于位置,在我的看法中,我认为您需要阅读每个目标的建议,因为每个目标的推荐位置可能都不同。

我经常使用JSON。在这种情况下,我计划使用名称/值对,因为我通过TStringLists进行读写,并且已经习惯了为简单起见保持所有名称/值。 - Charles Barouch

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接