我想在 Electron 上使用 showOpenDialog 选择文件时进行过滤。
我想让用户只能选择 Markdown (md)。
但这并没有得到尊重。
所以现在用户可以选择所有类型的文件。
我该如何解决它?
我的环境是:
ArchLinux
侏儒 46.2
电子31.0.1
const { app, BrowserWindow, dialog, ipcMain } = require("electron");
const path = require("node:path");
const createWindow = () => {
const win = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
preload: path.join(__dirname, 'preload.js')
}
})
win.loadFile(path.join(__dirname, "index.html"));
return win;
}
app.whenReady().then(() => {
const win = createWindow()
ipcMain.handle('FileChooser', async () => {
const res = await dialog.showOpenDialog(win, { properties: ["openFile"], title: "Select a Markdown", filters: { name: "Markdown", extensions: ["md"] } })
return res;
})
})
filters
选项采用过滤器数组。您传递的不是一个数组,而是一个单个过滤器对象。
将对象包裹在
[]
中,以便传递一个内部包含一个过滤器对象的数组。