从创建目录到现在,我使用FSEvents API获取目录中的所有更改。
从我的操作方式来看,我成功地获得了所有事件ids,但是这些事件不包含时间戳。一开始,我认为在CocoaDev上看到以下内容之前,不可能将这些ids与特定的时间相匹配:
事件被赋予一个唯一的64位ID,而不是时间戳(由于在30秒内发生的事件自动合并以节省空间),但是您可以将其转换为一个大致的时间。
但是,我仍然不知道如何将16738189转换为时间戳。有什么想法吗?
发布于 2014-02-01 22:47:14
我猜你不会把它转换成时间戳。它说:“你可以把它转换成一个大致的时间。”在事件处理程序中,您知道被调用的当前时间。由于事件是合并的,所以可以用调用事件处理程序的时间标记第一个事件,并从前一个事件中用一些增量标记后续事件。只要三角洲的总和小于合并时间(在本例中为30秒?),您就不应该有相同的时间。
发布于 2014-02-02 01:00:02
我非常肯定,API的使用方式是,您要求系统在某个时间或id之后重放所有事件,而不是担心某个特定事件的时间,您只是知道它们是完整的和有序的。
如果这是一个近似的时间,您可以尝试将它转换为从unix时代开始的基于秒的时间,这个API使用的是这个时间,而不是2001年1月1日更典型的OS时间。
https://stackoverflow.com/questions/21503616
复制相似问题