使用节点 js 递归地监视文件和文件夹(也可以在更改时获取信息)

Watch files and folders recursively with node js ( Also get info whenever changes )

我想在特定目录中更改文件和文件夹时查看它们。 fs.watch 表现不错,但没有提供足够的信息来说明更改了哪个文件或文件夹。看文件必须用什么获取详细信息

我猜你使用 the fs.watch() function to do this. It works somewhat differently on different OSs。只有在 Windows 和 MacOS 上 { recursive: true } 选项才有效。在其他操作系统上(如果您正在编写可移植代码,实际上在所有操作系统上)您还必须监视您想要的所有子目录。

如你所知,它是这样工作的。知道文件名后,您可以 use fs.stat() to learn more about the file from the Stats object。 (本示例代码未调试)

fs.watch('whatever/directory/name', { }, (eventType, filename) => {
  if (eventType === 'change') {
    fs.stat (filename, function (err, stat) {
      if(err) return console.error(err)
      const modTime = stat.mtimeMs
      const size = stat.size
      if (stat.isFile()) {
        /* this is an ordinary file */
      }
    } )
});

如果 fs.stat() 没有给您足够的信息,您可能需要阅读文件本身才能弄清楚。