【发布时间】:2016-11-24 21:21:01
【问题描述】:
我无法关闭 node.js 中的流这是我的代码
var inp = fs.createReadStream("a/b/c/"+ Name);
var out = fs.createWriteStream("a/b/c/"+ Name);
inp.pipe(out);
inp.close( function(err){
if (err){
console.log(err);
} else {
inp.unpipe(out);
socket.emit('Done',{'Name':name});
console.log('There will be no more data.');
}
});
然后我在我的代码中有这个功能,删除目录 inp 的目录
var fse = require("fs-extra");
fse.emptyDir("a/b/c/", function(err){
if(err){
console.log(err);
} else {
console.log("doneaaaa")
fse.remove("a/b/c",function(err){
if(err){
console.log(err);
} else {
console.log('doneaswell');
}
});
}
});
我得到了这个错误!!
doneaaaa
{ [Error: EBUSY: resource busy or locked, unlink 'a/b/c/.nfs000000002ab5000d00000072']
errno: -16,
code: 'EBUSY',
syscall: 'unlink',
path: 'a/b/c/.nfs000000002ab5000d00000072' }
这意味着流仍然打开!
.nfs 文件是在正确流式传输时创建的,但在流式传输关闭后不应该删除文件吗?
我做错了什么?
【问题讨论】:
-
我没看到你打电话给
unlink//unlinkSyncnodejs.org/api/fs.html#fs_fs_unlink_path_callback 还有,fse是什么? -
@Pogrindis 很抱歉编辑了问题 var fse = require ('fs-extra');我也尝试从标准 fs 模块取消链接以同样的问题结束
标签: javascript node.js fs