electron中使用打开对话框需要引入dialog模块
dialog.showOpenDialog([browserWindow, ]options)
第一个参数browserWindow是可选的,可以将打开对话框设置为某个窗口的模态子窗口
第二个参数options是一个对象,对象里有几个属性
title: 对话框窗口的标题(只针对windows)
message:对话框窗口的标题(只针对macos)
defaultPath:对话框的默认展示路径
buttonLabel:「确认」按钮的自定义标签, 当为空时, 将使用默认标签
filters:过滤文件
properties:是一个数组,数组中有下面几个选项
openFile:允许选择文件
openDirectory - 允许选择文件夹
multiSelections-允许多选
createDirectory-允许创建文件夹
例子如下:
打开对话框操作返回的数据有两个,一个是canceled,就是是否选择了文件,如果选择了返回true,没有选择返回false;一个是filePaths,就是选择的文件的路径
dialog.showOpenDialog({
title:"打开文件",
defaultPath:"/Users/huangzhibo/Documents/electron/myelectron",
buttonLabel:"选择",
filters:[
{ name: '图片', extensions:['jpg','png','gif']},
{ name: '视频', extensions:['mp4','avi']},
{ name: '所有文件', extensions:['*']}
],
properties: ['openFile','openDirectory', 'multiSelections','createDirectory'],
message:"打开文件"
}).then(result => {
console.log(result.canceled)
console.log(result.filePaths)
}).catch(err => {
console.log(err)
})
title:"打开文件",
defaultPath:"/Users/huangzhibo/Documents/electron/myelectron",
buttonLabel:"选择",
filters:[
{ name: '图片', extensions:['jpg','png','gif']},
{ name: '视频', extensions:['mp4','avi']},
{ name: '所有文件', extensions:['*']}
],
properties: ['openFile','openDirectory', 'multiSelections','createDirectory'],
message:"打开文件"
}).then(result => {
console.log(result.canceled)
console.log(result.filePaths)
}).catch(err => {
console.log(err)
})