Fs.unlink不会删除该文件 [英] fs.unlink doesn't delete the file

查看:0
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆