electron中有dialog模塊,可以用來打來文件框,選擇文件夾或者文件。
兩種實現方式
1、可以通過ipc通信,main process,實現打開文件對話框的操作,然後把選擇的文件夾或者文件再次通過ipc通信發送的render 進程。
// in render.js
const {ipcRenderer} = require('electron');
function openDialog(){
ipcRenderer.send('openDialog');
}
ipcRenderer.on('selectedItem', (event, files)=>{
console.log(files);//輸出選擇的文件
})
//in main.js
const {ipcRenderer, dialog} = require('electron');
ipcRenderer.on('openDialog',(event)=>{
dialog.showOpenDialog({
}).then(result=>{
console.log(result); //輸出結果
result.filePaths.length>0 && ipcRenderer.send(result.filePaths);
})
})
2、直接在render進程中,使用remote模塊中的dialog模塊,打開。
const { remote } = require('electron');
async function openDialog(){
const result = await remote.dialog.showOpenDialog({
properties: ['openFile'],
});
}
showOpenDialog的使用方式參考electron 文檔https://electronjs.org/docs/api/dialog#dialogshowopendialogbrowserwindow-options