IOS 监听文件改变

NSArray*paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);

if(paths.count==0){return;}

NSString*ksnowDir=[[pathsobjectAtIndex:0]stringByAppendingPathComponent:@"ksnow"];NSLog(@"ksnowdir = %@",ksnowDir);

NSURL*directoryURL=[NSURLURLWithString:ksnowDir];intconstfd=open([[directoryURLpath]fileSystemRepresentation],O_EVTONLY);

if(fd<0){NSLog(@"Unable to open the path = %@",[directoryURLpath]);return;}

dispatch_source_tsource=dispatch_source_create(DISPATCH_SOURCE_TYPE_VNODE,fd,DISPATCH_VNODE_WRITE|DISPATCH_VNODE_RENAME,DISPATCH_TARGET_QUEUE_DEFAULT);

dispatch_source_set_event_handler(source,^(){

unsignedlongconsttype=dispatch_source_get_data(source);

switch(type){

caseDISPATCH_VNODE_WRITE:{

NSLog(@"目录内容改变!!!");break;

}

caseDISPATCH_VNODE_RENAME:{

NSLog(@"目录被重命名!!!");break;

}

default:break;

}});

dispatch_source_set_cancel_handler(source,^(){close(fd);

});

self.source=source;

dispatch_resume(self.source);

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容