我正在使用NSFileManager并且我能够获取文件的上次更新,创建日期,...但是我无法获得文件最后一次打开的时间。有没有办法获得这些信息?
还有一个问题,我通过pathExtension属性获取MIME,但这样我得到的例子是.pdf,.doc,...而不是application / pdf,application / doc,text / txt,audio / vmw, ...是否可以自动获取此信息?
非常感谢!
答案 0 :(得分:1)
我认为NSURL的NSURLContentAccessDateKey可能与你所追求的很接近,可能会有所帮助,取决于你实际在做什么..
但已访问而非已打开。
这意味着例如:
如果打开,则会访问该文件。
如果您快速查看,则会访问该文件。
NSURLContentAccessDateKey资源最多的时间 最近访问过,如果卷支持,则作为NSDate对象返回 访问日期,如果不支持访问日期,则为零(只读)。 适用于OS X v10.6及更高版本。在NSURL.h中声明。
示例:
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
[self lastAcccess:@"/Users/UserName/Pictures/screenshots/text.png"];
}
- (void) lastAcccess: (NSString *) the_path {
NSURL *theUrl = [NSURL fileURLWithPath:the_path];
NSError * error;
NSDate *theDate;
[theUrl getResourceValue:&theDate forKey:NSURLContentAccessDateKey error:&error];
NSLog(@" theDate %@", theDate);
}
答案 1 :(得分:0)
使用Spotlight的MDItem API获取所有信息
NSString *path = @"/Users/dominik/Downloads/Screen Shot 2013-11-28 at 13.26.04.png";
MDItemRef item = MDItemCreate(NULL, (CFStringRef)path);
NSArray *attributes = (NSArray*)CFBridgingRelease(MDItemCopyAttributeNames(item));
NSDate *date = (NSDate*)CFBridgingRelease(MDItemCopyAttribute(item, kMDItemLastUsedDate));
CFRelease(item);
NSLog(@"%@",attributes);
NSLog(@"%@",date);