当前位置: 首页 > 知识库问答 >
问题:

Electron showOpenDialog不支持macOS上的扩展筛选器

韦绍晖
2023-03-14

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

共有1个答案

景成和
2023-03-14

如果没有:name和extensions属性,文件筛选器对象将无法工作。因此,您的问题的第一个电话应该没有任何问题:

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

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

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

 类似资料:
  • Electron 支持 Chrome 扩展API的子集, 主要是支持 DevTools 扩展和 Chromium-internal 扩展,但它同时也支持一些其他扩展能。 注意:Electron 不支持商店中的任意 Chrome 扩展,Electron 项目的目标不是与 Chrome 的扩展实现完全兼容。 加载扩展 Electron 只支持加载未打包的扩展 (即不能使用 .crx 文件)。 插件会被

  • 在过去的几周里,我一直在编写一些浏览器扩展,直到今天,我认为Firefox的WebExtension应该在Chrome中自动运行。所以我试着根据Mozilla的示例编写代码。 但是今天我意识到在Chrome扩展的API文档中没有提到承诺。 我在所有扩展的代码中都严格地使用了承诺。 所以现在我的问题是,我的代码能在Chrome中工作吗?或者,如果我在顶部添加一个声明,它会起作用吗? 或者,Chrom

  • 包含 RTL 文件 如需启用 RTL 功能,则要包含 'easyui-rtl.css' 和 'easyui-rtl.js' 文件。 <link rel="stylesheet" type="text/css" href="themes/default/easyui.css"> <link rel="stylesheet" type="text/css" href="easyui-rtl.cs

  • 谷歌Chrome扩展支持Chrome的Web语音语音识别API吗?我已经包含了一些javascript来创建一个语音识别对象,但是当我启动我的扩展时,没有提示我进行麦克风访问。 这不是我的代码的问题。我在谷歌上搜索过,但是我找不到任何关于Chrome扩展是否支持Web语音API的信息。我只想要一个是/不是的答案。 注意:我相信WebSpeech API对本地文件不起作用。

  • 一个轻量级的缓存实现,目前已支持 Redis Memcache Memcached File 四种储存模式 仓库地址: Github 安装 composer require easyswoole/cache 注意: 请确保框架已经引入了 composer 的 autoload.php 文件,否则报类不存在的错误 快速入门 如果不做任何设置,默认使用File驱动,开箱即用 use easySwool

  • 我正在使用ms graph api获取所有带有附件的消息。在此基础上,我需要获得具有docx/pdf扩展名的文件。下面是我尝试过的过滤器。 https://graph.microsoft.com/v1.0/me/messages?$filter=haseq true和ext eq'docx' https://graph.microsoft.com/v1.0/me/messages?的附件eq tr