使用electron和Javascript在控制台中显示完整文件夹路径

使用electron和Javascript在控制台中显示完整文件夹路径,javascript,electron,Javascript,Electron,我正在使用带有python后端的electron(用于独立桌面应用程序),我需要为python脚本提供一个目录。使用下面的代码,我可以打开一个对话框,但是它不会将文件夹路径输出到控制台 const OpenBtn = document.getElementById('OpenBtn') OpenBtn.addEventListener('click', function(event) { const { dialog } = require('electron').remote; //

我正在使用带有python后端的electron(用于独立桌面应用程序),我需要为python脚本提供一个目录。使用下面的代码,我可以打开一个对话框,但是它不会将文件夹路径输出到控制台

const OpenBtn = document.getElementById('OpenBtn')

OpenBtn.addEventListener('click', function(event) {
  const { dialog } = require('electron').remote;
  //Synchronous
  let dir = dialog.showOpenDialog({properties:["openDirectory"]})
  console.log(dir)
})
我不熟悉创建应用程序的前端方面,我正试图了解
dir
中包含的内容。我看到它产生了一个“承诺”(我尝试了各种方式访问
文件路径
字符串,但没有成功

有一个HTML按钮,id=OpenBtn,我有

        webPreferences: {
            nodeIntegration: true,
            enableRemoteModule: true
        }

在我的main.js文件中。

使用同步:

或异步:


snwflk非常感谢您提供了这两种方式。我从异步方式开始,当我将其与代码合并时,它对于一个独立的按钮非常有效。因此,当我将对话框与包含后续功能的按钮组合时,同步代码非常完美!再次感谢!
let dirs = dialog.showOpenDialogSync({properties:["openDirectory"]})
if (typeof dirs !== "undefined") {
    console.log("Selected paths:");
    console.log(dirs);
}
dialog.showOpenDialog({properties: ["openDirectory"]}).then(result => {
    if (result.canceled === false) {
        console.log("Selected paths:");
        console.log(result.filePaths);
    }
}).catch(err => {
    console.log(err);
})