【问题标题】:Watch files and folders recursively with node js ( Also get info whenever changes )使用 node js 递归地监视文件和文件夹(也可以在更改时获取信息)
【发布时间】:2021-07-18 12:06:06
【问题描述】:

我想查看特定目录中的文件和文件夹何时发生变化。 fs.watch 做得很好,但没有提供有关更改了哪个文件或文件夹的足够信息。观看文件时我必须使用什么来获取详细信息。

【问题讨论】:

    标签: node.js file fs watch


    【解决方案1】:

    我猜你使用the fs.watch() function 来做到这一点。它可以工作somewhat differently on different OSs。只有在 Windows 和 MacOS 上,{ recursive: true } 选项才有效。在其他操作系统上(如果您正在编写可移植代码,实际上在所有操作系统上)您还必须查看您想要的所有子目录。

    如您所知,它是这样工作的。知道文件名后,您可以use fs.stat()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() 没有为您提供足够的信息,您可能需要阅读文件本身才能弄清楚。

    【讨论】:

    • 非常感谢。我不知道{recursive: true} 选项。而且 fs.stat 太棒了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-12
    • 2011-06-18
    • 1970-01-01
    • 2012-03-26
    相关资源
    最近更新 更多