我正在NodeJs中编写一些代码,并希望检查该文件是否正在被另一个进程使用,如果它不执行任何操作,如果它没有被使用则执行某些操作。
fs.stats有点像,在这个瞬间文件大小是多少。并且不告诉我它是否正在使用其他流程。
不确定还有什么可以尝试。
在尝试使用nodejs访问文件之前,判断某个文件当前是否已被其他进程编辑锁定的最佳方法是什么?
答案 0 :(得分:7)
代码I在留下评论的一些指示后最终使用。
var delInterval = setInterval(del(), 1000);
function del(){
fs.open(filePath, 'r+', function(err, fd){
if (err && err.code === 'EBUSY'){
//do nothing till next loop
} else if (err && err.code === 'ENOENT'){
console.log(filePath, 'deleted');
clearInterval(delInterval);
} else {
fs.close(fd, function(){
fs.unlink(filePath, function(err){
if(err){
} else {
console.log(filePath, 'deleted');
clearInterval(delInterval);
}
});
});
}
});
}