【发布时间】:2014-05-30 21:03:19
【问题描述】:
我在 OS X 上遇到问题,其中stat 间歇性地返回一个结构,其st_mtime 对于某些文件的值为 0。
为什么会发生这种情况,是否有任何替代功能可以为我提供可靠的文件修改日期?
【问题讨论】:
标签: macos stat last-modified
我在 OS X 上遇到问题,其中stat 间歇性地返回一个结构,其st_mtime 对于某些文件的值为 0。
为什么会发生这种情况,是否有任何替代功能可以为我提供可靠的文件修改日期?
【问题讨论】:
标签: macos stat last-modified
如果您使用的是 Objective-C,NSFileManager 有一个很好的 API,名为 "attributesOfItemAtPath:error:",其中在 NSDictionary 对象中传回的内容之一是 "fileModificationDate"。
您还可以使用 CoreFoundation CFURL 函数,例如 "CFURLCopyResourcePropertyForKey",它有一个名为 "kCFURLAttributeModificationDateKey" 的东西,您可以获取它的值。
【讨论】:
我不知道它们的可靠性,但是 ls -l 或 find -ls 呢?
编辑:
我刚刚发现了这个:Getting the last modified date of a file in C
在 OS X 上,
st_mtimespec.tv_sec等同于st_mtime。
【讨论】:
这听起来可能很傻,但请检查stat() 的返回码。如果它返回除零以外的任何值,则存在错误(例如,找不到文件)。
我自己只花了几个小时来追踪这个。
【讨论】: