Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个应用程序,该应用程序将文件数据库保存在用户计算机上,或者可能位于可能在线或不在线的网络卷上。该数据库可能是位于不同文件夹中的数千个文件。当文件名更改、移动或删除时,监视它们以接收通知的最佳方法是什么?
我之前曾将 FSEvents 用于单个目录,但我猜测它不能很好地扩展到几千个单独的文件。使用 kqueue 怎么样?
我也许可以尝试维护一个动态的文件夹列表,试图用尽可能少的文件夹包含所有文件,但这意味着阅读完整列表并试图找出共同的祖先等。
想法或建议?
来自 Apple 的文档:
但是,如果您正在监视大量的内容层次结构,则应该使用文件系统事件,因为内核队列比内核事件稍微复杂一些,并且由于涉及到额外的用户内核通信,因此可能会占用更多资源。
https://developer.apple.com/library/mac/documentation/Darwin/Conceptual/FSEvents_ProgGuide/KernelQueues/KernelQueues.html#//apple_ref/doc/uid/TP40005289-CH5-SW2