【发布时间】:2019-06-29 06:55:17
【问题描述】:
谁能帮助解决这个问题,我知道有很多与这个问题相关的问题,但我几乎尝试了所有方法,没有任何帮助。
makeFile(dirName, fileName, content, callback) {
if (!fs.existsSync(dirName)) {
// fs.mkdirSync(dirName, {recursive: true});
shell.mkdir('-p', dirName);
}
zlib.inflate(Buffer.from(content), (err, InfoInflated) => {
if (err) {
logger.error(err);
return callback({ success: false, code: 500, err: err});
}
let file = fs.createWriteStream(dirName + fileName, {
flags: 'a'
});
file.on('open', fd => {
file.write(InfoInflated.toString('utf8'));
file.end();
}).on('error' , (err) => {
logger.error(err);
return callback({ success: false, code: 500, err: err});
}).on('finish', () => {
logger.info("file is complete !");
return callback({success: true, code: 200, result: {message: "OK", file: dirName + fileName}});
});
});
}
/tmp/files/2019-02-05/1205_undefined_undefined/1205_undefined_undefined.zip' 这是产生错误的完整路径
【问题讨论】:
-
为了更好地理解,请添加一些关于你正在做什么和失败的描述。
-
fs.createWriteStream(dirName + fileName, ...- 请edit 您的帖子并向我们展示dirName和fileName的值。还向我们展示您的代码中出现错误的确切位置。 -
@Corion 我已经编辑了问题
-
@Ashvin777 我已经编辑了问题
-
再次,您如何调用
makeFile函数?请告诉我们minimal reproducible example,以便我们尝试复制您的情况。dirName和fileName的值可能很重要,dirName中的目录是否已经存在也很重要。如果它们不全部存在,createWriteStream将失败并显示ENOENT(即file or directory not found)。
标签: node.js shell filesystems fs