FSEvents在OS X Leopard上出现怪异现象
我想监视Mac上几个目录的文件系统事件。 我想要监视的目录可能会在运行时更改,因此使用FSEvent这里是我的应用程序的功能:
东西似乎主要工作,但我注意到一些古怪的时候,调用回调和'eventPaths'值发送到回调。
例如,如果我为/ Foo和/ Bar创建了StreamRef,如果我在/ Bar中添加一个文件,我的回调几乎立即被调用,但eventPaths指向/ Foo中的一个位置,并且与StreamRef关联的上下文是也是/ Foo的。
或者说,我正在监视/ Foo和/ Bar,然后删除/ Bar(通过正确停止和关闭StreamRef for / Bar)。 我现在为/ Fee创建一个新的FSEventStreamRef并与同一个回调关联。 我对/ Fee进行的任何更改都不会导致回调被调用,但对/ Foo的更改会继续提高回调。
我在网上看到的任何示例或文档只会谈到监视单个文件夹。 我是如何将单个回调与多个FSEventStreamRefs关联起来的? 听起来这不应该是一个问题,但...
有没有人以可靠运作的方式做过类似的事情,或者对于我可能尝试不同的方式提出任何建议?
我试图做的一件事情就是使用一个FSEventStreamRef,并将CFArrayRef传递给我想要的所有路径,当我的监视列表更改关闭并重新创建一个新的FSEventStreamRef时 - 这更糟糕的是,以上。
适用于我。 我模仿了这些特点:
你能否显示失败的代码?
链接地址: http://www.djcxy.com/p/25361.html上一篇: FSEvents weirdness on OS X Leopard
下一篇: How to determine if a file copy is completed using cocoa