观看文件更改的目录
我想监视一个目录(包含大约5个子目录级别的数千个文件),用于更改文件的时间。 我知道我可以使用FSEvents API来监视文件在该目录内更改时的目录,但我似乎无法弄清楚如何确定哪些文件发生了更改。 这个参考文献建议我建立一棵二叉树并在每次触发事件时遍历树,是确定哪些文件被更改的最好方法吗? 如果没有,有什么更好的选择?
递归扫描目录并将kqueue附加到每个文件会更好吗? 我不确定这会对数千个文件有效吗?
我之前使用过UKKQueue,结果不一。
我最近意识到更好的解决方案,但我没有尝试过。 如果你只需要瞄准狮子,我认为新的最佳实践方式是使用NSFileCoordinator
。 您可以实现的方法NSFilePresenter
,这是您的目录感兴趣(该presentedItemURL
属性),当一个子项移动/更改被删除/系统会通知您(通过类似的方法presentedSubitemDidChangeAtURL:
如果你真的走这条路,我很乐意听听这个方法。
如果使用kFSEventStreamCreateFlagFileEvents创建流,那么您将针对每个文件的更改获取事件,而不仅仅是将更改通知给所监视的目录。 不幸的是,这只适用于OSX 10.7及更高版本。
链接地址: http://www.djcxy.com/p/25367.html