使用Node.js的文件系统监视器

5
我希望使用node.js实现文件系统监视器,以便监视特定目录中添加/删除的任何文件。有人能提供一些如何实现这个功能的想法吗?
谢谢。
5个回答

9

2
是的!你应该注意到 fs.watchFile 只能监视一个文件,所以你需要循环遍历目录中的所有文件。你应该考虑使用 node-walk 和/或 node-inotify-plus-plus - Rahman Kalfane
@Rahman 根据文档所述,您可以使用fs.watch来监视文件或目录。对于这个问题,监视目录是合适的:它将通知文件的添加/删除(但不包括文件内容的更改)。 - Yaakov Belch

5
核心的node.js监视器会在父目录上触发更改事件,当文件被删除时会出现其他奇怪情况。您可以使用Watchr来获取有用的事件,并监视目录树。请参考Watchr

3
谢谢您的推荐,+1!它让我发现了 https://github.com/paulmillr/chokidar。 - cbmeeks

2

正如@cbmeeks所提到的,值得一看的是chokidar包。它的README中提到它被webpack、browserify、VS Code等使用,因此很可能非常稳定且易于使用。它还拥有超过4k个星标,这也证明了它的权威性。


完全透明,我还没有使用过它,但计划使用。我正在做一个项目,这个问题与我的项目非常相似。 - jinglesthula
无法处理文件系统中有大量文件或目录数据量很大的情况。 - Peter

2
如评论所指出的那样,前一个回答(@FailingBullets)虽然有用,但实际上只涉及单个文件更改。不过这里有一个包可能会有所帮助:https://github.com/mikeal/watch。虽然我还没有使用过,但我打算很快使用它。一旦我使用了它,我会更新我的回答。

0

另一个选择是使用NSFW。它是Linux、Windows和OSX文件监视服务的本地抽象,因此不像其他工具那样存在性能问题。

https://github.com/Axosoft/nsfw


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接