dialog.showOpenDialog:显示一个文件选择对话框,允许用户选择一个或多个文件进行打开。
dialog.showSaveDialog:显示一个文件保存对话框,允许用户选择文件保存的位置和名称。
dialog.showMessageBox:显示一个消息框,用于显示警告、错误或信息等提示消息。
dialog.showOpenDialogSync 和 dialog.showSaveDialogSync:这些方法与上述方法相似,但是它们以同步的方式返回选择结果,而不是使用回调函数或 Promise。
一、dialog.showOpenDialog
dialog.showOpenDialog([browserWindow, ]options)
这个函数用于显示一个文件选择对话框,允许用户选择一个或多个文件进行打开。
[browserWindow, ] 代表这个参数是可选的,如果设置了这个参数,新弹出来的 dialog 会附着在这个 browserWindow 上。经过我的测试,在 Mac 平台上会显示的不一样,而在 Windows 平台显示的是一样的(外观上我没看出区别)。
options 是一个对象,用大括号 {} 来表示对象。
返回值:Promise<Object>
例子如下:
mainWindow.webContents.on('did-finish-load', () => {
dialog.showOpenDialog(mainWindow, {
title: 'dialog弹窗',
buttonLabel: '选择文件',
defaultPath: app.getPath('downloads'),
properties: ["openFile", "openDirectory", "multiSelections", "createDirectory"]
}).then(
result => {
console.log(result)
}
)
})
properties
这里主要讲解一下 properties 属性,这是一个字符串数组 string[] ,有以下的值:
openFile - 允许选择文件
openDirectory - 允许选择文件夹
multiSelections-允许多选。
showHiddenFiles-显示对话框中的隐藏文件。
createDirectorymacOS -允许你通过对话框的形式创建新的目录。
promptToCreateWindows-如果输入的文件路径在对话框中不存在, 则提示创建。 这并不是真的在路径上创建一个文件,而是允许返回一些不存在的地址交由应用程序去创建。
noResolveAliasesmacOS-禁用自动的别名路径(符号链接) 解析。 所选别名现在将会返回别名路径而非其目标路径。
treatPackageAsDirectorymacOS -将包 (如 .app文件夹) 视为目录而不是文件。
dontAddToRecentWindows - 不要将正在打开的项目添加到最近的文档列表中。
注意,有一些是仅限部分平台支持的。另外我发现一点,貌似在 Windows 平台上,openFile 与 openDirectory 不能同时出现,但是我看别人在 Mac 上是可以同时使用的。比如上面的
properties: ["openFile", "openDirectory", "multiSelections", "createDirectory"]
当上面的在 Windows 平台出现的时候,只能选择目录。注意这点!
filters
filters 也是非常有用的,这个可以限制用户可以选择的文件类型。这是一个 FileFilter[] ,这是一个列表,由 FileFilter 对象组成 。
FileFilter 对象有两个属性:
name string 这个属性是用于在文件选择对话框中显示过滤器的名称。它提供了一个可读的描述,用于帮助用户理解和选择适当的文件类型。
extensions string[]
给个例子:
dialog.showOpenDialog(mainWindow, {
title: 'dialog弹窗',
buttonLabel: '选择文件',
filters: [
{ name: '文本文件', extensions: ['txt'] },
{ name: '图片文件', extensions: ['jpg', 'png', 'gif'] }
],
defaultPath: app.getPath('downloads'),
properties: ["openFile", "multiSelections", "createDirectory"]
}).then(
result => {
console.log(result)
}
)
可以看到 filters 里的 name 属性是设置上图右下角的提示文字。
二、dialog.showSaveDialog
显示一个文件保存对话框,允许用户选择文件保存的位置和名称。
这跟 dialog.showOpenDialog 是类似的,
dialog.showMessageBox
显示一个消息框,用于显示警告、错误或信息等提示消息。
mainWindow.webContents.on('did-finish-load', () => {
const answers = ['确定','取消', '按钮']
dialog.showMessageBox({
title: '提示框',
message: '消息',
detail: '详细',
buttons: answers
}).then(
result => {
console.log(result)
}
)
})
相关作者
- 获取点赞0
- 文章阅读量133
评论()