gpt4 book ai didi

javascript - 构建失败后 Electron 将文件添加到公用文件夹

转载 作者:行者123 更新时间:2023-12-03 12:40:02 26 4
gpt4 key购买 nike

我正在使用 vue.js + vue-cli-plugin-electron-builder 构建一个 Electron 应用程序,它显示了公共(public)文件夹的结构,其中包括一个带有 PDF 文件的“pdf”文件夹。
我使用 pdf.js 来显示 pdf。
为了稍后在我的应用程序中拥有那个“pdf”文件夹,我复制了那个文件夹

extraFiles: [
{
from: "./public/pdf",
to: "pdf"
}
app shows folder structure and included pdf files
该应用程序显示所有文件夹和包含的 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 时
公共(public)文件夹 之后 应用程序已构建,应用程序显示新文件夹和 pdf,但如果我单击生成的名称“someNewPDF.pdf”,pdf.js 会引发错误。
带有pdf路径的控制台输出是正确的。
我发现只有在构建过程之前存在的文件以后才能访问。当我重命名 pdf 时, Electron 也无法显示该文件。
似乎 Electron 在构建应用程序时创建了文件映射,以后无法更改。
所以我的问题是:
我该怎么做才能让应用程序动态读取以后可以填充/扩展的文件夹。
这个想法是,用户可以将他的 pdf 文件放入一个文件夹中,并且可以通过我的应用程序查看。
我对 vue 和 Electron 很陌生。

最佳答案

我找到了解决方案:
客户现在可以将他的文件放在桌面上的“pdf”文件夹中。这个文件夹里面也是PDF.js的必要文件。
MAC 和 Windows 上的桌面路径是

const desktopPath = app.getPath('desktop')
所以现在我可以
window.open('file://' + desktopPath + '/pdf/web/viewer.html?file=' + url)
网址 保存 pdf 的路径。

关于javascript - 构建失败后 Electron 将文件添加到公用文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62660481/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com