观看文件更改的目录

我想监视一个目录(包含大约5个子目录级别的数千个文件),用于更改文件的时间。 我知道我可以使用FSEvents API来监视文件在该目录内更改时的目录,但我似乎无法弄清楚如何确定哪些文件发生了更改。 这个参考文献建议我建立一棵二叉树并在每次触发事件时遍历树,是确定哪些文件被更改的最好方法吗? 如果没有,有什么更好的选择?

递归扫描目录并将kqueue附加到每个文件会更好吗? 我不确定这会对数千个文件有效吗?


我之前使用过UKKQueue,结果不一。

我最近意识到更好的解决方案,但我没有尝试过。 如果你只需要瞄准狮子,我认为新的最佳实践方式是使用NSFileCoordinator 。 您可以实现的方法NSFilePresenter ,这是您的目录感兴趣(该presentedItemURL属性),当一个子项移动/更改被删除/系统会通知您(通过类似的方法presentedSubitemDidChangeAtURL:

如果你真的走这条路,我很乐意听听这个方法。


如果使用kFSEventStreamCreateFlagFileEvents创建流,那么您将针对每个文件的更改获取事件,而不仅仅是将更改通知给所监视的目录。 不幸的是,这只适用于OSX 10.7及更高版本。

链接地址: http://www.djcxy.com/p/25367.html

上一篇: Watch directory for file changes

下一篇: Changing the pathsToWatch in fsevents