如何在电子应用程序中找到图像文件的路径?

How to path to an image file in an electron app?

我正在为 windows 和 Mac 创建一个 electron 应用程序和包装,以便使用 electron-builder 进行分发。此应用程序创建一个文件夹和一些 pdf,其中根据用户输入而变化。 pdf 还使用图像,我将其作为节点应用程序保存在应用程序的根文件夹中。

我设法使用绝对路径写入桌面。

 if (!fs.existsSync(`/Users/${user}/Desktop/2019 Certificates`)){
        fs.mkdirSync(`/Users/${user}/Desktop/2019 Certificates`);
    }

但是当我使用这个相对路径时

stampandseal.png

我收到以下错误:

我希望它能找到与 js 文件相关的 png,但是我收到以下错误:

fs.js:121 Uncaught Error: ENOENT: no such file or directory, open 'stampandseal.png'

如果我对您的问题的理解正确,您是在尝试将应用程序包中的图像复制到用户的桌面。使用 __dirname 引用您的代码在其中执行的目录,然后从中构建路径。

我的 main.js 文件使用了下面的代码,该文件位于包含我的 app 目录的目录中。我使用 upath to build the path and jetpack 而不是 fs 来复制

var fromPath = upath.join(__dirname, "app", "assets", "image.png");
jetpack.copy(fromPath, toPath, { overwrite: true });