【问题标题】:Filesystem watcher using node.js使用 node.js 的文件系统观察器
【发布时间】:2011-09-06 09:43:38
【问题描述】:

我想使用 node.js 实现文件系统监视器,以便它监视特定目录中的任何文件被添加/删除。有人可以提供一个想法如何实现吗?

谢谢

【问题讨论】:

    标签: node.js


    【解决方案1】:

    查看fs.watchFile(filename, [options], listener) 以查看内置文件系统

    【讨论】:

    • 是的!您应该注意fs.watchFile 只能监视一个文件,因此您必须遍历目录中的所有文件。您应该考虑使用node-walk 和/或node-inotify-plus-plus
    • @Rahman documentation 声明您可以fs.watch 文件或目录。监视目录适合这个问题:它将通知文件的添加/删除(但不会更改文件的内容)。
    【解决方案2】:

    当文件被删除时,核心 node.js 监视将触发父目录上的更改事件,以及其他奇怪的事情。您可以使用Watchr 获取有用的事件,并查看目录树。

    【讨论】:

    【解决方案3】:

    正如 cmets 中所指出的,@FailingBullets 之前的回答虽然很高兴知道,但实际上只解决了单个文件更改。这里有一个包可能会有所帮助:

    https://github.com/mikeal/watch

    虽然我打算很快使用它,但我还没有使用它。我会更新我的答案。

    【讨论】:

      【解决方案4】:

      正如@cbmeeks 所提到的,chokidar 包值得一看。它的 README 提到它被 webpack、browserify、VS Code 等使用,因此它可能非常稳定且使用起来很轻松。它也有 > 4k 颗星,所以它增加了一些重量。

      【讨论】:

      • 完全公开,我还没用过,但打算用。对于我正在做的一个项目,我对这个问题的看法大致相同。
      • 不适用于具有大量文件或目录的文件系统具有大量数据。
      【解决方案5】:

      另一种选择是使用 NSFW。它是对 Linux、Windows 和 OSX 文件监视服务的原生抽象,因此不会像其他服务那样遭受性能问题。

      https://github.com/Axosoft/nsfw

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-01-13
        • 2011-12-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多