如何检查Node.js中的其他进程是否打开了文件?

时间:2018-01-21 03:44:35

标签: javascript node.js

我正在Node.js中编写一个日志阅读器程序,需要检查另一个进程(正在编写日志的进程)是否使用了一个日志文件。该程序在Windows上运行。我已经尝试了以下内容,但似乎日志文件在打开并被写入时未被锁定,因此fs.openSync将始终成功。

function checkOpened(filePath){
var fd=0;
try{
    fd=fs.openSync(filePath, 'r+');
}catch(err){//cannot lock the file
    console.log(err.code);
    if(err.code === "EBUSY"){
        return true
    }
    return false;
}
try{
    fs.statSync(fileP)
    fs.closeSync(fd);
    fs.unlinkSync(filePath);
}catch(err){
    //Doesn't really care
}
  return false;
}

如何检查Node.js中的其他进程是否打开了文件?

编辑:显然可以使用fs.rename检查文件是否正在使用(如果文件被其他进程使用,则无法执行此操作)。我现在会满足于此。

0 个答案:

没有答案