【发布时间】:2013-03-27 07:51:40
【问题描述】:
有没有办法更改 OS X 上文件的“上次打开”日期(我认为是kMDItemLastUsedDate)?理想情况下,这将使用 C API 调用,但 Objective-C 很好。当我查找有关如何设置元数据属性的文档时,我得到了有关创建 Spotlight Importers 的信息,这似乎不太正确。
这是一个备份程序——从备份恢复后,“最后打开”的日期应该和原来的一样。
澄清一下,我确实不想要来自stat() 的atime。那是不同的价值。如果您不相信,您可以自己使用touch 和mdls 进行实验。
【问题讨论】:
-
我认为这将与 stat(2) 手册页中提到的 _DARWIN_FEATURE_64_BIT_INODE 相关,但这似乎不起作用。有趣的问题。
-
它看起来好像是只读的,并且由 fs 设置。 mdls(1) 可让您查看它们,但我认为元数据在设计上是只读的。
-
@RandyHoward:它不能是只读的,因为它在您打开文件时被修改。我想知道 Launch Services 是否负责更新它。
-
我不清楚。只读,我的意思是在应用程序级别。显然,fs 代码中或与之相关的某些东西正在处理它,但它可能不会暴露给应用程序。您可能必须走 kext 路线才能做到这一点?无论哪种方式,抱歉我无法回答,但我很想看看它是如何解决的。
-
@RandyHoward:我不相信数据甚至是由内核管理的。我可能会在您打开文件时尝试点击系统调用,但我怀疑我会整理大量的噪音。
标签: macos