Fs.unlink不会删除该文件 [英] fs.unlink doesn't delete the file
本文介绍了Fs.unlink不会删除该文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在我的Express服务器上,我想获取用户上传的文件并重命名它,使其与其用户名匹配。如果用户名上载了新文件,则将替换以前的文件。
代码如下:
var newPath = 'uploads/' + user.username + '.' + (file.extension).toLowerCase();
var basePath = path.resolve(__dirname + '../../../') + '/';
// Copy, rename and delete temp file
var is = fs.createReadStream(basePath + file.path);
var os = fs.createWriteStream(basePath + newPath);
is.pipe(os);
is.on('end', function (error) {
if (err) return res.send(500);
fs.unlink(basePath + file.path);
});
问题是fs.unlink(basePath + file.path);
实际上不会删除我机器(OSX 10.9.2)上的旧文件。如何确保删除临时文件?
推荐答案
文件basePath + file.path
具有由读取流is
引用的链接。应推迟删除文件内容,直到关闭对该文件的所有引用。您可能希望在close
事件上调用fs.unlink
。
这篇关于Fs.unlink不会删除该文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文