Skip to content

开打资源管理器选择文件或目录

api文档:https://www.electronjs.org/docs/latest/api/dialog

dialog.showOpenDialogSync([browserWindow, ]options)

  • browserWindow BrowserWindow (可选) ,参数允许该对话框将自身附加到父窗口, 作为父窗口的模态框。
  • options 对象:
    • title String (可选) - 对话框窗口的标题
    • defaultPath String (可选) - 对话框的默认展示路径
    • buttonLabel String (可选) - 「确认」按钮的自定义标签, 当为空时, 将使用默认标签。
    • properties String[] (可选) - 包含对话框相关属性。 支持以下属性值:
      • openFile - 允许选择文件
      • openDirectory - 允许选择文件夹
      • multiSelections-允许多选。
      • showHiddenFiles-显示对话框中的隐藏文件。
    • filters FileFilter[] (可选) 文件选择过滤器

返回 String[] | undefined, 用户选择的文件路径,如果对话框被取消了 ,则返回undefined

filters 指定一个文件类型数组,用于规定用户可见或可选的特定类型范围。 例如:

js
{
  filters: [
    { name: 'Images', extensions: ['jpg', 'png', 'gif'] },
    { name: 'Movies', extensions: ['mkv', 'avi', 'mp4'] },
    { name: 'Custom File Type', extensions: ['as'] },
    { name: 'All Files', extensions: ['*'] }
  ]
}

使用模块 dialog.showOpenDialogSync

主程序中引入模块

javascript
import { dialog } from 'electron'

渲染程序中引入模块

渲染程序需要添加依赖 npm install --save @electron/remote

javascript
const { dialog } = require('@electron/remote')

简单用法

选择目录

javascript
const result = dialog.showOpenDialogSync({
    properties: ['openDirectory']
})
// 返回选择的目录或文件路径
console.log(result)

个人收集整理, MIT License