如何在OS X上可靠地检索文件的上次修改时间?

时间:2014-05-30 21:03:20

标签: macos stat last-modified

我在OS X上遇到问题,其中stat间歇性地返回某些文件的st_mtime值为0的结构。

为什么会发生这种情况,是否有任何替代功能可以为我提供文件的可靠修改日期?

3 个答案:

答案 0 :(得分:1)

如果您使用的是Objective-C,NSFileManager有一个名为"attributesOfItemAtPath:error:"的漂亮API,其中NSDictionary对象中传回的内容之一是"fileModificationDate"

您也可以使用CoreFoundation CFURL函数,例如"CFURLCopyResourcePropertyForKey",其中包含一些名为"kCFURLAttributeModificationDateKey"的函数,您可以获得它的值。

答案 1 :(得分:0)

我不知道他们的可靠性,但ls -lfind -ls呢?

修改

我刚发现:Getting the last modified date of a file in C

  

在OS X上,st_mtimespec.tv_sec相当于st_mtime

答案 2 :(得分:0)

这可能听起来很愚蠢,但请检查stat()的返回代码。如果它返回除零之外的任何内容,则会出现错误(例如,找不到文件)。

我花了几个小时跟踪自己。