1、问题1:在electron-vue中的static文件夹下放了一个7za.exe文件,希望在electron中使用childprocess.exec来调用,在npm run dev环境下使用path.join(__static,"7za.exe")可以访问到,但是打包后,这里的static中的7za.exe文件会被打包放到哪里了呢?(把包使用的是electron-vue自带的electron-builder。)
代码:
//这里是想使用nodejs的进程调用.exe文件。
childprocess.exec(path.join(__static,"7za.exe")(err,stdout,stderr)=>{
if(err){
console.log(err);
return false;
}
console.log(stdout);
});
2、问题2:在electron中从一个指定地址下载一个.zip文件,我如果想把文件放到打包后的应用程序根目录下,下载时使用item.setSavePath("路径"+\\${item.getFilename()}
);设置下载位置时,路径该怎么写呢?(还是说保存到其它位置)
mainWindow.webContents.session.on('will-download', (event, item, webContents) => {
//如果要保存到打包后的应用程序根目录下,这里的保存路径怎么写呢?
item.setSavePath(保存路径+`\\${item.getFilename()}`);
item.on("updated",(event,state)=>{
const totalBytes=item.getTotalBytes();
mainWindow.setProgressBar(item.getReceivedBytes()/totalBytes);
mainWindow.webContents.send("downloadTips",`下载中: ${Math.round(item.getReceivedBytes()/totalBytes*100)}%`);
if(state=="interrupted"){
console.log("下载中断,但可以恢复");
}else if(state=="progressing"){
console.log("暂停下载");
}else{
console.log(`下载中: ${item.getReceivedBytes()}`)
}
})
electron-builder打包后,会生成一个.asar文件,是属于只读的,而且打包后发现__static并找不到静态文件,可以手动path.join(__dirname, '/static')来寻找静态文件
如果需要操作文件的话,需要存放在userData 下,或者设置asar:false