有一个discussion连续的 FSEventStreamEventId 可用于检测 kFSEventStreamEventFlagItemRenamed 事件的旧名称和新名称。这似乎适用于我对基本重命名案例的测试。但是,在以下情况中,这似乎有所不同:
这会导致事件:
2012-11-06 18:13:01.246 test[45080:1603] event [60095818] [10800] [/Users/tim/test_dir/B]
2012-11-06 18:13:01.248 test[45080:1603] event [60095824] [10900] [/Users/tim/test_dir/C]
2012-11-06 18:13:01.253 test[45080:1603] event [60095825] [10800] [/Users/tim/test_dir/A]
事件位0x10800 =“重命名文件”和0x10900 =“文件创建/重命名”
(来自FSEvents.h)
kFSEventStreamEventFlagItemCreated = 0x00000100
kFSEventStreamEventFlagItemRenamed = 0x00000800
kFSEventStreamEventFlagItemIsFile = 0x00010000
在这种情况下, A 重命名为 B 的事实似乎已丢失。
我希望看到一个像60095817 10800这样的事件。
任何人都可以确认这种行为吗?如果有的话,是否有人对如何处理此限制有任何想法,而无需维护目录内容的单独表示并重新扫描/比较整个目录?
我正在测试OS X 10.8.2。
编辑:刚发现另一个discussion表示这可能是多个重命名的更常见问题。