【发布时间】:2020-10-20 22:27:41
【问题描述】:
我正在使用 vue.js + vue-cli-plugin-electron-builder 构建一个电子应用程序,它显示了公共文件夹的结构,其中包括一个带有 PDF 文件的“pdf”文件夹。 我使用 pdf.js 来显示 pdf。 为了稍后在我的应用程序中拥有那个“pdf”文件夹,我复制了那个文件夹
extraFiles: [
{
from: "./public/pdf",
to: "pdf"
}
该应用程序显示所有文件夹和包含的 pdf 文件。 当我单击一个 pdf 名称时,会打开一个弹出窗口并显示 PDF。 在开发和最终构建中效果很好。
我用这个函数读取文件夹:
readdir () {
var devPath = path.join(__static, '/pdf/Anbau')
console.log("devPath development : ", devPath);
var readFiles = new Promise((resolve, reject) => {
fs.readdir(devPath, (err,files) => {
if(err) {
alert('Lesen fehlgeschlagen!', {type: 'error'})
reject(err);
} else {
resolve(files);
this.list = files;
console.log('this.list: ', this.list, this.list.length)
}
});
});
},
现在的问题是,当我向其中添加新文件夹和 pdf 文件时 公共文件夹在应用程序构建后,应用程序显示新文件夹和pdf,但如果我点击生成的名称“someNewPDF.pdf”,pdf.js 会抛出错误。
带有pdf路径的控制台输出是正确的。 我发现只有在构建过程之前存在的文件以后才能访问。当我重命名 pdf 时,电子也无法显示该文件。 似乎电子在构建应用程序时创建了文件映射,后来无法更改。
所以我的问题是: 我该怎么做才能让应用程序动态读取以后可以填充/展开的文件夹。
这个想法是,用户可以将他的 pdf 文件放入一个文件夹中,并且可以通过我的应用程序查看。
我是 vue 和电子的新手。
【问题讨论】:
标签: javascript vue.js pdf electron pdf.js