问题描述
我正在研究FileMaker 18解决方案。我必须解决的事情之一是执行外部Python脚本并读回其结果。该脚本可以运行几秒钟。由于我的解决方案可以跨平台工作(我是在MacOS上开发的,但大多数用户将在Windows上开发),所以我选择了Basic Elements插件来执行脚本。
由于这是我们将与解决方案一起提供的自定义脚本,因此FileMaker需要知道其位于哪个目录中(以及导入生成的XML)。令我惊讶的是,BE_ExecuteSystemCommand默认为根目录,而不是解决方案的安装目录。
获取和存储可能是用户和/或系统特定的数据或其他目录的最佳实践是什么?
我目前的想法是创建一个简单的“全局”键/值对表来存储路径等,并编写一个脚本,该脚本在启动时检查是否设置了键为“ datapath”的值,如果是,则存储它在其他脚本可以引用的全局变量中。如果不是,请在文件打开对话框中提示用户选择该目录。第一次启动该解决方案时,他只需要做一次。
在我自己做所有事情之前,我在这里问是否有关于如何执行该操作的最佳实践,特别是,或者我是否在想错并且应该以其他方式这样做?
出于其他一些目的(数据导入等),我可能也需要数据目录。
解决方法
Filemaker具有本机函数,可返回一些常用路径:
-
Get(FileMakerPath)-运行当前文件的FileMaker应用程序的路径;
-
Get(FilePath)-当前文件的路径;
-
Get(DocumentsPath)-当前用户的Documents文件夹的路径;
-
Get(DesktopPath)-当前用户的桌面文件夹的路径;
-
Get(PreferencesPath)-当前用户的首选项文件夹的路径。
-
Get(TemporaryPath)-当前用户的临时文件夹的路径;
请注意,这些函数返回的路径是Filemaker路径,而不是OS路径。