gpt4 book ai didi

electron - 无法在 Electron 应用程序中访问 asar 存档中的文件

转载 作者:行者123 更新时间:2023-12-04 22:57:47 27 4
gpt4 key购买 nike

Electron 版:1.2
操作系统:Windows

无法使用 readFileSync 访问 asar 存档中的文件:

var fs = require('fs');
var SQL = require('sql.js');
var filebuffer = fs.readFileSync('asar:'+ __dirname + './app/data/sample.db');

I've also tried using
trial 1 : readFileSync('D:/Sample-App/app.asar/app/data/sample.db');

trial 2 : readFileSync('./app/data/sample.db');

trial 3 : process.noAsar= true;
readFileSync('./app/data/sample.db');


所有的试验都没有成功。如果我尝试不使用 app.asar,我可以访问 db 文件。所以请帮我解决这个问题。

最佳答案

我假设您的意思是,一旦将应用程序打包到 asar,您的文件路径就不起作用。

fs.readFileSync('asar:'+ __dirname + './app/data/sample.db')


这很接近。你不需要“asar:”,你应该使用 path 模块来让你的生活更轻松。

尝试使用 path 动态构建路径.此外,您的主要入口点 JS 可能已经在 app 文件夹中运行。尝试这样的事情:
path.join(__dirname, '/data/sample.db');

这将为每个操作系统创建一个有效的绝对路径(Windows 中的路径使用\而 OSX 和 Linux 使用/)。记住 __dirname是您当前目录的任何内容,因此之后的所有内容都必须与它相关。

关于electron - 无法在 Electron 应用程序中访问 asar 存档中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37559596/

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