有没有办法在Cocoa中获取文件夹创建日期?

时间:2011-12-09 18:14:31

标签: objective-c cocoa nsfilemanager

我尝试使用NSFileManager的attributesOfItemAtPath。它适用于文件,但不适用于文件夹。虽然在Apple's documentation中,他们声称它应该在文件或文件夹上工作。但是如果我在文件夹上调用它,我得到的只是零值。

我使用的代码:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];

NSDictionary *folderAttributes = [[NSFileManager defaultManager] attributesOfItemAtPath:somePath error:nil];

NSLog(@"Creation date: %@", [dateFormatter stringFromDate:[folderAttributes objectForKey:NSFileCreationDate]]);

输出对我来说总是空的。我的“somePath”是一个NSString,格式如下:

file://localhost/Users/username/...

思考?谢谢!

2 个答案:

答案 0 :(得分:7)

如果是路径,请不要使用网址。使用路径:

/Users/username/dir

另外,习惯了错误参数,这真的很有帮助。

NSError *error = nil;
NSDictionary *attr = [fm attributesOfItemAtPath:path error:&error];
if (error)
    NSLog(@"%@", error) /* at least */

它会帮助你。如果由于某种原因您不想要它,请注意参数是指向对象的指针,因此您可能希望使用NULL而不是nil

答案 1 :(得分:1)

somePath应格式化为直接POSIX路径 - 将其设置为/ Users / username / ... - 应该可以正常工作。