Electron在macOS上的showOpenDialog方法无法正确过滤文件扩展名。

5

我是一名辅助翻译员,以下是您需要翻译的内容:

我有一个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 上,如何打开一个本地文件选择对话框,限制用户只能选择具有特定扩展名的单个文件?


我使用的是Mojave 10.14.1 (18B75),你的第一个片段只允许我选择单个文件。 - Michelle Tilley
你想限制用户选择哪个扩展名? - Itai Steinherz
1个回答

2
文件过滤器对象如果没有名称和扩展名属性,将无法工作。因此,你提出的问题中的第一个调用应该可以正常工作:
dialog.showOpenDialog({ properties: ['openFile'], filters: [{name: 'Foo
Files', extensions: ['foo']}] })

因为要选择目录,您需要在属性数组中拥有openDirectory。如果没有该属性,则不应允许选择任何目录。
您是否尝试选择任何目录?当您尝试选择任何目录(双击它或单击系统对话框中的“打开”按钮)时,它不会选择它,而是打开该目录。

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