nodejs关于文件被占用的判断

一个程序在录制视频文件,另一个程序使用readFileSync在读取这个视频文件,读取成功,但实际此文件并未录制完成,导致上传文件为损坏文件

Node.js 有一个内置的 fs 模块,可以用来进行文件操作。你可以使用 fs.access 函数来检查文件是否可以被访问,这样就可以判断文件是否被占用了。
例如,你可以这样写:

const fs = require('fs');

fs.access('/path/to/file', fs.constants.W_OK, (err) => {
  if (err) {
    console.error(`文件被占用:${err}`);
  } else {
    console.log('文件没有被占用,可以进行操作。');
  }
});

在这个例子中,我们使用 fs.access 函数检查 /path/to/file 这个文件是否可写(即是否被占用)。如果文件可写,则会输出 "文件没有被占用,可以进行操作。";如果文件不可写,则会输出 "文件被占用:[Error]"。
注意,如果文件不存在,也会返回一个错误。所以,如果你想要判断文件是否存在,可以使用 fs.exists 函数:

fs.exists('/path/to/file', (exists) => {
  if (exists) {
    console.log('文件存在,可以进行操作。');
  } else {
    console.log('文件不存在。');
  }
});