我有一个Electron应用程序,我试图打开一个 native 文件选择器对话框,并限制用户只能选择具有某些自定义扩展名的单个文件(称为.foo)。
在macOS(Mojave,如果有关系)上,使用Electron ^ 3.0.0,此操作:
dialog.showOpenDialog({ properties: ['openFile'], filters: [{name: 'Foo
Files', extensions: ['foo']}] })`
将打开仅允许用户选择目录的 native 文件选择器。
这:
dialog.showOpenDialog({ properties: ['openFile'], filters: [{extensions:
['foo']}] })
将打开一个 native 文件选择器,该文件选择器允许我选择一个文件,但允许选择具有任何扩展名的文件。
如何在macOS上打开 native 文件选择器对话框,以限制用户选择具有特定扩展名的单个文件?
最佳答案
文件过滤器对象不能同时使用:name和extensions属性。因此,您的问题的第一个电话应该可以正常工作:
dialog.showOpenDialog({ properties: ['openFile'], filters: [{name: 'Foo
Files', extensions: ['foo']}] })
因为要选择目录,所以需要在
openDirectory
数组中包含properties
。没有该属性,则不允许您选择任何目录。您是否通过选择任何目录进行检查?当您尝试选择任何目录(双击它或单击系统对话框中的“打开”按钮)时,它不会选择它,它将打开该目录。
关于macos - Electron showOpenDialog不尊重macOS上的扩展过滤器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54132634/