我正在使用FSEvents API从目标创建到目前为止获取目录中的所有更改。
从我的方式来看,我成功获取了所有事件ID,但是这些事件不包含时间戳。一开始我认为在CocoaDev上阅读这篇文章之前我无法将这些ID与特定时间匹配:
事件被赋予唯一的64位ID而不是时间戳(由于 自动合并每个事件发生在30秒内的事件 其他可节省空间)但您可以将其转换为大致的时间。
但是我仍然不明白如何将16738189
转换为时间戳。有什么想法吗?
答案 0 :(得分:2)
我的猜测是你没有将它转换为时间戳。它说“你可以将它转换成大致的时间。”在事件处理程序中,您知道调用时的当前时间。由于事件是合并的,因此您可以使用调用事件处理程序的时间标记第一个事件,并使用前一个事件标记后续事件。只要增量的总和小于合并时间(在这种情况下是30秒?),你就不应该有任何相同的时间。
答案 1 :(得分:1)
我很确定使用API的方式是你要求系统在一段时间或一段时间之后重播所有事件,而不是担心特定事件的时间,你只知道它们是完整的,按顺序。
如果是大概的时间你可以尝试将其转换为基于unix epoch的秒数,该API使用该时间而不是2001年1月1日更典型的OS X时间