电子dialog.showOpenDialog()过滤器不起作用

时间:2018-09-08 13:25:40

标签: javascript node.js electron

我正在GitHub上的IDE的分支上工作,主要问题之一是它将文件保存到cookie而不是普通计算机上。因此,我需要一种保存和打开文件的方法。我已经通过使用Blob来保存文件系统了。但是,根据控制台,打开文件提供的是“意外字符串”,即使它很原始。

下面是函数:

function openFileCMD() {
console.log('Opening File...');
dialog.showOpenDialog( (fileName), {
    filters: [{ 
        name: 'Text Files', 
        extensions: ['txt'] 
    }, { 
        name: 'HTML Files',
        extensions: ['html', 'htm']
    }, {
        name: 'Rich Text File',
        extensions: ['rtf'] 
    }, { 
        name: 'XML/YAMLFile', 
        extensions: ['xml', 'yml', 'yaml'] 
    }, { 
        name: 'JSON File', 
        extensions: ['json'] }
    ]} => {
    if(fileName === undefined) {
        console.log("Ouch. That wall hurt. Can you pick a file this time? Please?");
        // document.getElementsByClassName('alert')[0].style.display = "block";
        return;
    }
    fs.readFile(fileName[0], 'utf-8', (err, data) => {
        if(err){
            alert("Woah. Something went wrong. Check the console for more info.");
            console.log("An error occured reading the file : " + err.message);
            return;
        } else {
            document.getElementById("code-editor").value = "<pre><code>" + data + "</code></pre>";
        }
    });
closeSidebar();
}

在此先感谢任何可以帮助解决此问题的人,或者为我指出正确的方向来解决这个问题! :)

编辑:我曾尝试dialog.showOpenDialog全部在一行上:仍然无济于事。

1 个答案:

答案 0 :(得分:1)

您收到的“意外字符串”错误消息与过滤器无关,但与dialog.showOpenDialog的调用不正确有关。

dialog.showOpenDialog (filename, options => { ... });

应改为:

dialog.showOpenDialog (options, filename => { ... });