Electron:读取/写入外部文件/运行外部应用程序

kuuvgm7e  于 9个月前  发布在  Electron
关注(0)|答案(1)|浏览(124)

**Context:**我有一个应用程序ExternalApp.exe,需要读取一个文件来执行:File.ini。此文件包含ExternalApp.exe应用程序的配置,并且无法读取。
**解决方案:**创建一个electron应用,读写File.ini,执行ExternalApp.exe。使用electron-builder构建electronportable应用程序,并将生成的.exe(Launcher.exe)移动到ExternalApp文件夹。

最后我们得出这样的结论:

[ExternalApp] (folder)
    |-- ExternalApp.exe
    |-- File.ini
    |-- Launcher.exe (electron app)

**问题:**这在开发和运行npm start时工作正常,没有问题,但当我将应用程序编译为可执行文件时,尝试从AppData而不是从ExternalApp文件夹读取File.ini

不知道我做错了什么。代码如下:
打开外部ExternalApp.exe

const {shell} = require('electron');
shell.openExternal('./ExternalApp.exe').then(response => {
    console.log(response);
});

测试结果:

undefined //Instead, the Windows Explorer is opened.

读取File.ini文件

const fs = require('fs');
const file_info = './File.ini';
fs.readFile(file_info , 'utf8', function(error, data){
    if (error) throw error;
    console.info(data)
});

测试结果:

Uncaught Error: ENOENT: no such file or directory, open 'C:\Users\Personal\AppData\Local\Temp\2VBLMOYLXHt0I5WQNGDXIPttjAW\File.ini'

注:我是新的电子,这是我第一次使用它的项目,任何帮助将非常感谢

iovurdzv

iovurdzv1#

我在另一篇文章中找到了解决方案,应该使用PORTABLE_EXECUTABLE_DIR来获得正确的路径

process.env.PORTABLE_EXECUTABLE_DIR

感谢@ Alexandria 的评论

相关问题