iOS 实时监听文件夹的变化
2016-12-02 09:09
1046 查看
1.添加属性
2.开启监听
3.在退出的时候,注销一下
@property (nonatomic, strong) dispatch_source_t source;
2.开启监听
- (void)startManager { [self startMonitorFile]; }
- (void)startMonitorFile { //监听Document文件夹的变化 NSURL *directoryURL = [NSURL URLWithString:[SandBoxHelper docPath]]; //添加需要监听的目录 int const fd = open([[directoryURL path] fileSystemRepresentation], O_EVTONLY); if (fd < 0) { NSLog(@"Unable to open the path = %@", [directoryURL path]); return; } dispatch_source_t source = dispatch_source_create(DISPATCH_SOURCE_TYPE_VNODE, fd, DISPATCH_VNODE_WRITE, DISPATCH_TARGET_QUEUE_DEFAULT); dispatch_source_set_event_handler(source, ^() { unsigned long const type = dispatch_source_get_data(source); switch (type) { case DISPATCH_VNODE_WRITE: { PVRLog(@"Document目录内容发生变化!!!"); if (self.isConvenientFinished) { self.isConvenientFinished = NO; [self directoryDidChange]; } break; } default: break; } }); dispatch_source_set_cancel_handler(source, ^{ close(fd); }); self.source = source; dispatch_resume(self.source); }
3.在退出的时候,注销一下
- (void)stopManager { dispatch_cancel(self.source); }
相关文章推荐
- iOS文档浏览与文件夹的状态变化的监听
- iOS 监听文件夹变化
- iOS 实时监听UITableViewCell中的UItextField的值的变化
- iOS开发 实时监听UITextField内容的变化
- iOS监控/监测/监听文件/文件夹的变化 检测文件变化
- 【iOS】KVO方式监听数组的变化动态刷新tableView
- 实时监听输入框值变化的完美方案:oninput & onpropertychange
- iOS 监听App音量的变化(转)
- iOS 监听App音量的变化
- 监听输入框值变化的最佳方案 oninput 和 onpropertychange (实时监控文本框改变的最佳方案)
- 实时监听输入框值变化的完美方案:oninput & onpropertychange
- iOS监听相册变化
- ios监听app音量的变化
- 用Reachability实时监听网络的变化
- 实时监听输入框值变化的完美方案:oninput & onpropertychange
- 如何在Windows下实时监视系统共享文件夹的变化
- 实时监听输入框值变化的完美方案:oninput & onpropertychange
- 实时监听input输入的变化(兼容主流浏览器)
- 实时监听输入框值变化
- 实时监听输入框值变化的完美方案:oninput & onpropertychange