我試圖將文件下載到電子應用程序中的文件系統。我的代碼,在主線程,如下所示:電子應用程序createWriteStream拋出ENOENT錯誤
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
建立它,我得到的錯誤警報:
Uncaught Exception: Error: ENOENT, media/uploads_2016_02_BASF_Holistic_Program.jpg not found in /Users/nicholasstephan/Desktop/XXXXXXX/dist/Mac/XXXXXX.app/Contents/Resources/app.asar at notFoundError (ELECTRON_ASAR.js:109:19) at Object.module.(anonymous function) [as open] (ELECTRON_ASAR.js:209:16) at WriteStream.open (fs.js:1890:6) at new WriteStream (fs.js:1876:10) at Object.fs.createWriteStream (fs.js:1831:10) at next (/Users/nicholasstephan/Desktop/XXXXXXXX/dist/Mac/XXXXXXXX.app/Contents/Resources/app.asar/media.js:19:18) at /Users/nicholasstephan/Desktop/XXXXXXXX/dist/Mac/XXXXXXXX.app/Contents/Resources/app.asar/media.js:52:4 ...
其中media.js
,19n被提及的是代碼中的const file = fs.createWriteStream(
$ {dir}/$ {name} );
行。
我已經嘗試了大約十幾個其他類似的stackoverflow答案提供的解決方案,但沒有解決這個問題。
這是怎麼回事?
感謝。