题
我在这里创建了一个简单的文件系统观察者,使用Mac文件系统事件API如下所示: Apple Developer Doc 。我的问题是标题。如何获得改变的事情的道路? EventPaths数组仅向我提供我本质上观看的父目录(或其设置)的路径。但不是修改的底层目录条目。
我可以使用回调,即。:
static void mycallback(
ConstFSEventStreamRef streamRef,
void *clientCallBackInfo,
size_t numEvents,
void *eventPaths,
const FSEventStreamEventFlags eventFlags[],
const FSEventStreamEventId eventIds[])
.
我认为也许名称可以从其中一个项目中提取?
编辑:
例如,有人可能会发现创建文件,在哪个情况下是
kfseventstreameventflagitemcreated
被提升。但我应该如何了解该项目的实际名称? (类似于其他事件,就像删除物品时的那样。)。
编辑2:
我开始认为它不可能做我想要的事情。来自 FS Tech概述:
“带走的重要点是通知的粒度在目录级别。它只告诉您目录中的某些东西已更改,但不会告诉您更改了什么。”
aka。 Bugger。
欢呼,
ben。
其他提示
不幸的是,当我发现时,它是不可能的;查看 FS技术概述用于解释/动机。围绕作品是拍摄目录的快照,然后只要发现更改,请使用新的快照并与原件差异,找到更改的特定目录条目(及其名称)。
编辑:可以>= 10.7(参见所选答案)
不隶属于 StackOverflow