我已经使用mac文件系统事件API在C++中创建了一个简单的文件系统观察器,如下所示:apple developer doc。我的问题在标题中。我如何获得改变的事物的路径? eventPaths数组仅给出了我实际上正在观察的父目录(或其集合)的路径。但不是被修改的底层目录条目。是否有可能从FSEvent ID获取文件名?
我可以使用回调,即:
static void mycallback(
ConstFSEventStreamRef streamRef,
void *clientCallBackInfo,
size_t numEvents,
void *eventPaths,
const FSEventStreamEventFlags eventFlags[],
const FSEventStreamEventId eventIds[])
我在想,也许名字可以从这些项目中的一个被提取抢有用的信息?
编辑:
例如,我们可以找到一个文件在这种情况下,
kFSEventStreamEventFlagItemCreated
提高创建。但是,我应该如何去获取该物品的实际名称? (与其他事件类似,例如删除项目等)。
编辑2:
我开始认为,这将是不可能的做我想做的。 From FS tech overview:
“重要的一点是,通知的粒度在目录级别,它告诉你只有目录中的内容发生了变化,但不会告诉你发生了什么变化。”
又名。开溜。
干杯,
本。
真的吗?辉煌!谢谢! :-)我看看.. –
正是我想要的。你知道是否有可能限制搜索过程的深度,就像探索的子目录的数量一样?干杯。 –
不是我所知道的。我认为你必须手动完成。 – Kat