iOS 监听文件夹变化

来源:互联网 发布:mac文件夹重命名命令 编辑:程序博客网 时间:2024/05/29 11:06
参考https://developer.apple.com/library/ios/samplecode/DocInteraction/Listings/Classes_DirectoryWatcher_m.html

1. 根据文件夹的路径,调用open函数打开文件夹,得到文件夹的ID。
2. 通过kqueue()函数创建一个kqueue队列来处理系统事件(文件创建或者删除),得到queueId
3. 创建一个kevent结构体,设置相关属性,连同kqueue的ID一起传给kevent()函数,完成系统对kevent的关联。
4. 调用CFFileDescriptorCreateRunloopSouce创建一个接收系统事件的runloop source,同时设置文件描述符的回调函数(回调函数采用C语言标准的回调函数格式), 并加到默认的runloopMode中。
5. 启用回调函数。
6. 关闭kqueue,关闭文件夹

然后就等待系统事件的触发吧。触发后会执行回调函数,在这里面去通知需要通知的对象。注意每次回调函数执行完后会被设为disabled,需要重新enable
0 0
原创粉丝点击