大家好,开发人员/程序员。今天我来寻求帮助的东西,是我正在做一个应用程序,如果或如果它必须是可移植的,我遇到的问题是,当编写一个zip文件的应用程序找不到目录或生成的zip损坏。
我编写zip文件的代码如下所示:
ipcMain.on("report-file", async (event, data) => {
let zipFilePath = "report.zip"
let output = fs.createWriteStream(zipFilePath);
let archive = archiver("zip")
archive.pipe(output);
if (data.saves) {
archive.directory(`game/saves`, false)
archive.directory(`game/cache`, false)
}
archive.append(fs.createReadStream(`log.txt`), {
name: `log.txt`,
})
archive.append(fs.createReadStream(`traceback.txt`), {
name: `traceback.txt`,
})
archive.finalize()
});
电子版:21.2.3
销售代表:Windows 11
电子构建器版本:23.6.0
再深入一点看,我发现应用程序使用的地址是C:\User\User\AppData\Local\Temp\[id]\resources\app.asar
,它试图压缩文件,就好像它们在那个路径中一样,但是,要压缩的文件位于.exe是. (G:\myapp\dist)
的位置
我已经试着按照stackoverflow page上的一个旧帖子来修复它,但是,它没有解决这个问题,所以今天我决定在这里问我的问题,你知道如何获得一个electronic js便携式应用程序的实际路径吗?
1条答案
按热度按时间pdtvr36n1#
我找到了解决这个问题的方法,那就是用electron创建一个对话框,然后加载文件夹位置。然后使用resolve和可执行文件的地址,这样它就正确地加载了exe所在文件夹的地址。