如何监控网络映射驱动器上的文件更改?

Jam*_*mie 15 macos networking fsevents

从我看到,网络映射驱动器显示为/ Volumes文件夹的子文件夹.

从此文件夹获取文件更改更新(删除/创建/更新)的正确方法是什么?

/ dev/fsevents会为此工作吗?

Finder如何了解这些变化?

mah*_*tin 3

你是对的,OS X 将网络驱动器安装在 /Volumes 中

获取文件更改更新的方法是使用文件系统事件 API。它是一个基于 C 的 API,您可以在其中监视特定目录(甚至/)中的所有更改。

您可以使用以下命令创建流FSEventStreamCreate并启动它FSEventStreamScheduleWithRunLoop

准备好深入研究头文件,因为参考文档中有更多关于它的文档

据我所知,Finder 可能使用一些内部 API 或内核队列,这些 API 的设置比 FSEvents.h 的高级 API 更复杂

有一个很好的 GUI 可以帮助您查看整个事件是如何发生的。它被 fernlightning 称为 fseventer(尚未准备好 Yosemite)