首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何下载app文件夹内的文件?[打包后]

问如何下载app文件夹内的文件?[打包后]
EN

Stack Overflow用户
提问于 2017-07-03 16:28:02
回答 1查看 845关注 0票数 1

This is my current folder structurebefore packaging WRM_80..是我下载的文件夹。

我在index.js中有这两行代码来下载并在我的电子窗口中显示html

代码语言:javascript
复制
fs.createReadStream('./Report.zip').pipe(unzip.Extract({ path: './'+folderName }));
LoginWindow.loadURL(`file://${__dirname}./`+folderName+`/t01s01q01.html`);

在开发模式下,它工作正常,文件下载到我的index.js所在的文件夹中。但在打包后,应用程序文件正在下载到应用程序文件夹之外。WRM_80下面给出了打包的文件夹结构。是我下载的文件夹。after packaging

这就是我无法将下载文件加载到window的原因。如何下载app文件夹内的文件?如果不可能,我如何从resources\app位置加载外部文件?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-06 04:19:02

通过将目录引用为./folder_name,您实际上是在告诉应用程序下载到working directory。在这种情况下,工作目录是程序所在的文件夹。在开发和使用electron命令时,工作目录是应用程序的根目录。但是,一旦安装并作为.exe运行,工作目录将更改为可执行文件的位置。

要解决此问题,请不要使用当前工作目录。相反,请使用用户/应用程序数据文件夹来存储此信息。它不仅是跨开发和部署的一致位置,而且在语义上也是存储应用程序数据的正确位置。

在Electron中,您可以使用以下命令获取应用程序数据文件夹的路径:

代码语言:javascript
复制
const {app} = require('electron');
app.getPath('userData')

因此,您的代码应该如下所示:

代码语言:javascript
复制
var userData = app.getPath('userData');
fs.createReadStream(`${userData}/Report.zip`).pipe(unzip.Extract({ path: `${userData}/${folderName}` }));
LoginWindow.loadURL(`file://${userData}/${folderName}/t01s01q01.html`);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44880926

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档