據Apple documentation,在回調至FSEvents
,FSEvents文件標誌設置,不管事件流創造選項
/* These flags are only set if you specified the FileEvents */
/* flags when creating the stream. */
kFSEventStreamEventFlagItemCreated = 0x00000100,
kFSEventStreamEventFlagItemRemoved = 0x00000200,
kFSEventStreamEventFlagItemInodeMetaMod = 0x00000400,
kFSEventStreamEventFlagItemRenamed = 0x00000800,
kFSEventStreamEventFlagItemModified = 0x00001000,
kFSEventStreamEventFlagItemFinderInfoMod = 0x00002000,
kFSEventStreamEventFlagItemChangeOwner = 0x00004000,
kFSEventStreamEventFlagItemXattrMod = 0x00008000,
kFSEventStreamEventFlagItemIsFile = 0x00010000,
kFSEventStreamEventFlagItemIsDir = 0x00020000,
kFSEventStreamEventFlagItemIsSymlink = 0x00040000
不過,我三聯檢查了kFSEventStreamCreateFlagFileEvents
標誌沒有被設置調用
FSEventStreamRef FSEventStreamCreate(
CFAllocatorRef allocator,
FSEventStreamCallback callback,
FSEventStreamContext *context,
CFArrayRef pathsToWatch,
FSEventStreamEventId sinceWhen,
CFTimeInterval latency,
FSEventStreamCreateFlags flags);
當
但無論我做什麼,kFSEventStreamEventFlagItem*
標誌仍將在事件從FSEvents
API傳遞給我時設置。我懷疑這是一個錯誤,但我不太確定。我正在使用OS X Lion 10.7.2
示例代碼可以在此處找到。 http://stuconnolly.com/downloads/scevents/
編輯
的問題是:
任何人都經歷了同樣的結果?
這是我可以依賴的行爲來檢查文件事件標誌?
那麼問題是什麼? – 2012-02-05 04:58:42
oops,增加了這個問題。謝謝指出 – Tony 2012-02-05 05:04:39
看到同樣的事情。 OS 10.8.2在這裏。它絕對不是文檔建議的方式。 – 2012-11-27 19:24:24