我可以知道使用fsevent更改了哪个文件?

时间:2010-06-16 00:05:02

标签: objective-c cocoa

我从fsevent获取目录路径,例如“/ User / Data /” 但我真正想要的是“/User/Data/change.txt” 我已阅读编程指南,它说

typedef void ( *FSEventStreamCallback )(
    ConstFSEventStreamRef streamRef,
    void *clientCallBackInfo,
    size_t numEvents,
    void *eventPaths,
    const FSEventStreamEventFlags eventFlags[],
    const FSEventStreamEventId eventIds[]);  
  

eventPaths一个路径数组   事件的目录   发生。

有没有找出哪个文件被修改的方法? 谢谢!!!! 我坚持了很久......

3 个答案:

答案 0 :(得分:5)

另一种选择是kqueue。请参见“文件系统事件编程指南”的附录A.

答案 1 :(得分:3)

根据您的使用需求,您可能会考虑低级别的fsevents。该进程必须以root身份运行。这是从/dev/fsevents读取的simple example,而不是使用FSEvents包装器。有了这个,您将获得完整的路径以及进行更改的过程和其他详细信息。

答案 2 :(得分:1)

在10.7+中,您可以将kFSEventStreamCreateFlagFileEvents标志传递给FSEventStreamCreate以获取单个文件信息。请参阅documentation