我正在NodeJs中编写一些代码,并希望检查该文件是否正在被另一个进程使用,如果是,则不执行任何操作,如果不在使用中,则执行一些操作。stats是一种,在这个瞬间,文件大小是多少,并且不告诉我它是否正在被另一个进程使用。不知道还能尝试什么。在尝试使用nodejs访问文件之前,判断文件当前是否被另一个进程锁定以进行编辑的最佳方法是什么?
mlmc2os51#
代码,我结束了使用后,一些指令,从评论离开。
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); } }); }); } }); }
z0qdvdin2#
我想到了一个更小的方法,所以我想分享一下:
function isWritable() { let fileAccess = false try { fs.closeSync(fs.openSync(filePath, 'r+')) fileAccess = true } catch (err) { console.log('can not open file!') } return fileAccess }
2条答案
按热度按时间mlmc2os51#
代码,我结束了使用后,一些指令,从评论离开。
z0qdvdin2#
我想到了一个更小的方法,所以我想分享一下: