电子showOpenDialog不遵守macOS上的扩展过滤器

时间:2019-01-10 16:07:27

标签: macos electron

我有一个Electron应用程序,我试图打开一个本机文件选择器对话框,并限制用户只能选择具有某些自定义扩展名(称为.foo)的单个文件。

在macOS(Mojave,如果重要)上,使用Electron ^ 3.0.0,这是

dialog.showOpenDialog({ properties: ['openFile'], filters: [{name: 'Foo
Files', extensions: ['foo']}] })`

将打开仅允许用户选择目录的本机文件选择器。

此:

dialog.showOpenDialog({ properties: ['openFile'], filters: [{extensions: 
 ['foo']}] })

将打开一个本机文件选择器,它使我可以选择一个文件,但允许选择具有任何扩展名的文件。

如何在macOS上打开本机文件选择器对话框,以限制用户选择具有特定扩展名的单个文件?

1 个答案:

答案 0 :(得分:0)

文件过滤器对象不能同时使用:name和extensions属性。因此,您提出的问题的第一个电话应该没有任何问题。

dialog.showOpenDialog({ properties: ['openFile'], filters: [{name: 'Foo
Files', extensions: ['foo']}] })

因为要选择目录,您需要将openDirectory放在properties数组中。如果没有该属性,则不允许您选择任何目录。

您是否通过选择任何目录进行检查?当您尝试选择任何目录(双击它或单击系统对话框中的“打开”按钮)时,它不会选择它,它将打开该目录。