【发布时间】:2017-07-18 14:16:23
【问题描述】:
我正在尝试将文件下载到电子应用程序中的文件系统。我的代码,在主线程中,如下所示:
const dir = `${__dirname}/media`;
if (!fs.existsSync(dir)){
fs.mkdirSync(dir);
}
const file = fs.createWriteStream(`${dir}/${name}`);
file.on("open", function() {
const request = http.get(url, function(response) {
response.pipe(file);
response.on('end', function() {
file.close();
...
});
});
request.on('error', function(err) {
...
});
});
这在使用 electron . 在开发中运行时有效,但是在我使用 electron-builder 构建它之后,我在警报中收到错误:
未捕获的异常: 错误:ENOENT,媒体/uploads_2016_02_BASF_Holistic_Program.jpg 在 /Users/nicholasstephan/Desktop/XXXXXXX/dist/Mac/XXXXXX.app/Contents/Resources/app.asar 中找不到 在 notFoundError (ELECTRON_ASAR.js:109:19) 在 Object.module.(anonymous function) [as open] (ELECTRON_ASAR.js:209:16) 在 WriteStream.open (fs.js:1890:6) 在新的 WriteStream (fs.js:1876:10) 在 Object.fs.createWriteStream (fs.js:1831:10) 在下一个(/Users/nicholasstephan/Desktop/XXXXXXXX/dist/Mac/XXXXXXXX.app/Contents/Resources/app.asar/media.js:19:18) 在 /Users/nicholasstephan/Desktop/XXXXXXXX/dist/Mac/XXXXXXXX.app/Contents/Resources/app.asar/media.js:52:4 ...
media.js, ln 19, 被引用的是代码中的const file = fs.createWriteStream(${dir}/${name}); 行。
我已经尝试了大约十几个其他类似的 stackoverflow 答案中提供的解决方案,但没有一个能够解决问题。
这是怎么回事?
谢谢。
【问题讨论】:
标签: node.js electron fs enoent