在双击Electron Builder上打开时获取关联文件的路径

问题描述

信息:

  • 操作系统:Windows 10
  • 电子版本:最新
  • Electron Builder版本:最新

我正在尝试制作一个可编辑.txt文件的应用。我想获取使用应用程序打开时的文本文件的路径(即用户选择使用我的应用程序打开.txt)。我在build的{​​{1}}中加入了以下内容

package.json

这将使应用程序与文件一起打开,但是如何获取用于打开应用程序的文件的路径。我知道我必须对"fileAssociations": [ { "name": "Text Files","description": "Plain Text File","ext": [ "txt" ] } ],做些什么,但是我不知道如何使用它。我尝试了以下失败的尝试:

process.argv

如何获取文件的路径?

解决方法

这是整个process的日志。如我们在这里看到的,第二个argv是输入文件路径的路径。因此,process.argv[1]到文件路径就足够了。不确定为什么无法获得路径。

也许这来自您的ipc事件监听器。这意味着get-file-data未正确触发。

正如您在下图中所看到的,我正在此浏览器控制台中显示此过程变量。这是我向渲染器公开process变量的方式。但这仅用于调试!建议您在生产中不要这样做。

preload.js

process.once("loaded",() => {
    window.process = process;
});

main.js

mainWindow = new BrowserWindow({
    width: 1024,height: 728,minWidth: 800,minHeight: 750,webPreferences: {
        enableRemoteModule: true,preload: path.join(__dirname,"preload.js"),}
});

您可以在渲染器上使用window.processprocess

enter image description here

,

我设法通过以下方式获得了路径:

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

console.log(remote.process.argv[1])

这将返回用于打开应用程序的文件的路径!