节点Js:测试以查看文件是否被其他进程锁定以进行编辑

sha*_*aun 3 javascript node.js

我正在NodeJs中编写一些代码,并希望检查该文件是否正在被另一个进程使用,如果它不执行任何操作,如果它没有被使用则执行某些操作.

fs.stats有点像,在这个瞬间文件大小是多少.并没有告诉我,如果它目前正在使用另一个进程.

不知道还有什么可以尝试.

在尝试使用nodejs访问文件之前,判断某个文件当前是否被其他进程编辑锁定的最佳方法是什么?

sha*_*aun 8

代码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);
                    }
                });
            });
        }
    });
}
Run Code Online (Sandbox Code Playgroud)