【发布时间】:2014-11-28 04:30:57
【问题描述】:
我有一个应用程序,该应用程序将文件数据库保存在用户计算机上,或者可能保存在可能在线也可能不在线的联网卷上。该数据库可能是位于不同文件夹中的数千个文件。当文件名发生更改、移动或删除时,监控它们以接收通知的最佳方法是什么?
我之前曾将 FSEvents 用于单个目录,但我猜测它不能很好地扩展到几千个单独的文件。使用 kqueue 怎么样?
我也许可以尝试维护一个动态的文件夹列表,试图用尽可能少的文件夹包含所有文件,但这意味着阅读完整列表并尝试找出共同的祖先等。
想法或建议?
【问题讨论】:
-
哪些性能测量会导致您得出 FSEvent 无法扩展的结论?
-
如果我添加几个目录和几千个文件,我不会担心,但是单独添加几千个文件似乎有很多开销。如果它显然走错了路,我不想花费时间和精力来构建它。
-
了解 Spotlight 引擎如何监控文件系统会很有趣。如果他们使用其他/私有 API,我会感到惊讶。
标签: file cocoa fsevents kqueue