Secondo Apple documentation, nel callback per FSEvents
,FSEvents bandiere file vengono impostati indipendentemente dal flusso di eventi opzioni di creazione
/* 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
Tuttavia, tripla controllato che la bandiera kFSEventStreamCreateFlagFileEvents
non viene impostata al momento della chiamata
FSEventStreamRef FSEventStreamCreate(
CFAllocatorRef allocator,
FSEventStreamCallback callback,
FSEventStreamContext *context,
CFArrayRef pathsToWatch,
FSEventStreamEventId sinceWhen,
CFTimeInterval latency,
FSEventStreamCreateFlags flags);
Ma non importa quello che faccio, i flag kFSEventStreamEventFlagItem*
vengono ancora impostati quando gli eventi vengono passati dall'API FSEvents
. Sospetto che sia un bug, ma non ne sono del tutto sicuro. Sto usando OS X Lion 10.7.2
Il codice di esempio può essere trovato qui. http://stuconnolly.com/downloads/scevents/
EDIT
La domanda è:
chiunque altro ha sperimentato gli stessi risultati?
Si tratta di un comportamento su cui posso fare affidamento per controllare i flag di evento del file?
Quindi qual è la domanda? –
oops, aggiunta la domanda. grazie per aver segnalato – Tony
Vedere la stessa cosa. OS 10.8.2 qui. Sicuramente non si sta comportando come suggerisce la documentazione. –