【发布时间】:2011-09-06 09:43:38
【问题描述】:
我想使用 node.js 实现文件系统监视器,以便它监视特定目录中的任何文件被添加/删除。有人可以提供一个想法如何实现吗?
谢谢
【问题讨论】:
标签: node.js
我想使用 node.js 实现文件系统监视器,以便它监视特定目录中的任何文件被添加/删除。有人可以提供一个想法如何实现吗?
谢谢
【问题讨论】:
标签: node.js
查看fs.watchFile(filename, [options], listener) 以查看内置文件系统
【讨论】:
fs.watchFile 只能监视一个文件,因此您必须遍历目录中的所有文件。您应该考虑使用node-walk 和/或node-inotify-plus-plus。
fs.watch 文件或目录。监视目录适合这个问题:它将通知文件的添加/删除(但不会更改文件的内容)。
当文件被删除时,核心 node.js 监视将触发父目录上的更改事件,以及其他奇怪的事情。您可以使用Watchr 获取有用的事件,并查看目录树。
【讨论】:
正如 cmets 中所指出的,@FailingBullets 之前的回答虽然很高兴知道,但实际上只解决了单个文件更改。这里有一个包可能会有所帮助:
https://github.com/mikeal/watch
虽然我打算很快使用它,但我还没有使用它。我会更新我的答案。
【讨论】:
正如@cbmeeks 所提到的,chokidar 包值得一看。它的 README 提到它被 webpack、browserify、VS Code 等使用,因此它可能非常稳定且使用起来很轻松。它也有 > 4k 颗星,所以它增加了一些重量。
【讨论】:
另一种选择是使用 NSFW。它是对 Linux、Windows 和 OSX 文件监视服务的原生抽象,因此不会像其他服务那样遭受性能问题。
【讨论】: