最好的Cocoa方式来监控几千个文件的移动,删除和重命名?

时间:2014-11-28 04:30:57

标签: file cocoa fsevents kqueue

我有一个应用程序,用于保存位于用户计算机上的文件数据库,或者可能位于可能联机或未联机的联网卷上的文件数据库。此数据库可能是位于不同文件夹中的数千个文件。当文件的名称发生变化或移动或被删除时,监控他们接收通知的最佳方法是什么?

我以前曾使用过FSEvents作为单个目录,但我猜它不能很好地扩展到几千个单独的文件。怎么用kqueues?

我或许可以尝试维护一个动态文件夹列表,试图用尽可能少的文件夹包含所有文件,但这意味着阅读完整列表并尝试找出共同的祖先等。

想法或建议?

1 个答案:

答案 0 :(得分:0)

来自Apple的文档:

  

如果您正在监控大型内容层次,则应使用   但是,因为内核队列是,所以文件系统事件   比内核事件稍微复杂一些,可以是更多的资源   由于额外的用户 - 内核通信而密集   参与。

https://developer.apple.com/library/mac/documentation/Darwin/Conceptual/FSEvents_ProgGuide/KernelQueues/KernelQueues.html#//apple_ref/doc/uid/TP40005289-CH5-SW2