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

时间:2016-06-07 22:17:27

标签: javascript node.js

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

fs.stats有点像,在这个瞬间文件大小是多少。并且不告诉我它是否正在使用其他流程。

不确定还有什么可以尝试。

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

1 个答案:

答案 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);
                    }
                });
            });
        }
    });
}