Electron - 打开文件夹对话框

avi*_*i12 6 javascript directory dialog electron

我希望用户能够从文件夹对话框中选择一个文件夹。
到目前为止,我已经尝试按照教程失败。
我被困在了

exports.selectDirectory = function () {
  // dialog.showOpenDialog as before
}
Run Code Online (Sandbox Code Playgroud)

我需要做什么才能检索所选文件夹的完整路径?
谢谢!

小智 6

Dialog api 在主进程中可用(https://electron.atom.io/docs/)。

要创建对话框,您必须通过从渲染器进程发送消息来告诉主进程这样做。

试试这个代码:

// in your renderer process:-

const ipcRenderer = require('electron').ipcRenderer;

ipcRenderer.send('selectDirectory');


//in you main process:-

const electron = require('electron');

const ipcMain = electron.ipcMain;

const dialog = electron.dialog;

//hold the array of directory paths selected by user

let dir;

ipcMain.on('selectDirectory', function() {

    dir = dialog.showOpenDialog(mainWindow, {

        properties: ['openDirectory']

    });

});
Run Code Online (Sandbox Code Playgroud)

注意:这里的 mainWindow,它是保存对话框的父 browserWindow。

  • 据我所知,对话框在渲染器中可用。 (2认同)