【问题标题】:Electron showOpenDialog not respecting extensions filter on macOSElectron showOpenDialog 不尊重 macOS 上的扩展过滤器
【发布时间】:2019-01-10 16:07:27
【问题描述】:

我有一个 Electron 应用程序,我正在尝试打开一个原生文件选择器对话框,并限制用户只选择一个带有一些自定义扩展名的文件(称为 .foo)。

在 macOS(莫哈韦沙漠,如果重要的话)上,使用 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) 上,你的第一个 sn-p 给了我一个对话框,只允许我选择一个文件
  • 你想限制用户选择哪个扩展?

标签: macos electron


【解决方案1】:

如果没有 name 和 extensions 属性,文件过滤器对象将无法工作。所以,你的问题的第一个电话应该没有任何问题:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-07
    • 1970-01-01
    • 2010-09-20
    • 2011-06-16
    • 1970-01-01
    • 1970-01-01
    • 2011-09-14
    相关资源
    最近更新 更多