javascript 如何显示一个打开文件的原生对话框与电子?

kmpatx3s  于 2023-01-29  发布在  Java
关注(0)|答案(2)|浏览(167)

我正在尝试添加功能到我的电子应用程序,将允许用户打开应用程序中的文件,特别是纯文本文件。在查看电子文档后,我发现this页面。我添加了这个代码到我的app.js文件,我链接到我的index.html

var fs = require('fs');
var dialog = require('electron');
$openFile = $('#openBtn');
$editor = $('#editor');

$openFile.click(function(){
  dialog.showOpenDialog(function(fileNames) {
    if (fileNames === undefined) return;
    var fileName = fileNames[0];

    fs.readFile(fileName, 'utf-8', function (err, data) {
      $editor.val(data);
    });
  });
});

但是,当我运行这个命令时,控制台中显示了这个错误:Uncaught TypeError: dialog.showOpenDialog is not a function我试过使用远程,但无济于事。
有人知道如何解决这个问题吗?提前感谢

q3qa4bjr

q3qa4bjr1#

const {dialog} = require('electron').remote;

document.querySelector('#selectBtn').addEventListener('click', function (event) {
    dialog.showOpenDialog({
        properties: ['openFile', 'multiSelections']
    }, function (files) {
        if (files !== undefined) {
            // handle files
        }
    });
});
ubbxdtey

ubbxdtey2#

在主进程上可以使用

const {dialog} = require('electron');

dialog.showOpenDialog({properties: ['openFile'] }).then(function (response) {
    if (!response.canceled) {
        // handle fully qualified file name
      console.log(response.filePaths[0]);
    } else {
      console.log("no file selected");
    }
});

响应如下所示:

{
 canceled: false,
 filePaths: [
    '<fullpath>/<filename>'
 ]
}

相关问题