我正在开发适用于Windows和Mac的应用程序,我需要一些有关如何组织输入数据的文件结构(例如配置文件)的帮助,以便可以轻松地用于Mac。
我有一个非常简单的程序,可以从目录中读取一些数据data
。在Windows中,我创建了一个example.exe
,该data
文件夹位于该文件夹旁边。如果用户需要处理更多数据(通过电子邮件接收),则只需将文件放入文件夹中,然后双击example.exe
。
我设法创建了DMG,但不知道将数据文件夹放在哪里。对另一个文件夹(例如HOME
或Desktop
)进行硬编码有效,但是感觉不对。我想到了一个可以打开对话框以指定文件夹的按钮,但是随后我需要保存该路径,以便用户下次打开应用程序时使用。为了保存此路径,我需要一个配置文件或工作区。因此,我再次需要一个可以找到配置文件的路径。
从Mac可用性的角度来看,预期的行为是什么,以及从目录位置和配置文件的角度来看,我将如何处理?
我要说的是,将数据文件夹与macOS中的可执行python脚本并存是没有错的。
我假设这只是一个没有GUI的脚本。如果有一个GUI,我说应该鼓励用户将应用程序复制到/ Applications(或〜/ Applications)中,然后为用户提供一种使用对话框选择“数据”文件夹的方法。
我认为,适用于Windows和macOS的最佳解决方案是允许将数据目录的路径指定为命令行参数。如果未指定,则默认为./data
如果要保存用户指定的数据目录路径设置,则一种类似于Mac的好方法是使用该defaults
系统。您可以使用defaults read
和defaults write
命令在脚本中轻松读取和写入默认值。默认值使用反向域名表示法来帮助确保它们在所有应用程序中都是唯一的。
假设您的组织名为ttwidgets,如果您有一个名为ttwidgets.com的网站,并且此脚本名为pywidget,则可以使用domain com.ttwidgets.pywidget
。
设置默认值的语法是:
% defaults write com.ttwidgets.pywidget datapath /user/specified/path
然后由macOS管理并永久存储。您可以使用以下方法回读设置(如果再次存在):
% defaults read com.ttwidgets.pywidget datapath
/user/specified/path
如果未设置任何内容(例如,首次使用),则会收到错误消息(并且该命令返回非零返回码:
% defaults read com.ttwidgets.pywidget an_unset_variable
2018-04-21 12:08:40.179 defaults[12409:1472790]
The domain/default pair of (com.ttwidgets.pywidget, an_unset_variable) does not exist
% echo $?
1
这应该提供使用macOS内置的首选方法持久存储应用程序的键/值设置所需的所有工具。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句