我已经使用 mac 文件系统事件 API 在 C++ 中创建了一个简单的文件系统观察程序,如下所述: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 技术概述:
“重要的一点是通知的粒度是目录级别的。它只告诉你目录中的某些内容发生了变化,但不会告诉你发生了什么变化。”
阿卡。臭虫。
干杯,
本。