Objective c 通过NSFileManager获取元数据
我正在与NSFileManager合作,我能够获得文件的最后更新、创建日期。。。但我无法得到文件最后一次打开是什么时候。有没有办法得到这些信息 还有另一个问题,我通过pathExtension属性得到MIME,但通过这种方式我得到例如.pdf、.doc、。。。代替application/pdf、application/doc、text/txt、audio/vmw等,有没有办法自动获取这些信息 非常感谢 我认为NSURL可能与您所追求的目标非常接近,并且可能会根据您实际所做的工作而有所帮助 但它是访问的而不是打开的 这意味着,例如: 如果打开它所访问的文件 如果您quicklook将访问该文件 NSURLContentAccessDateKey资源最可用的时间 最近访问,如果卷支持,则作为NSDate对象返回 访问日期,如果不支持访问日期,则为零(只读)。 在OS X v10.6及更高版本中提供。在NSURL.h中声明 例如:Objective c 通过NSFileManager获取元数据,objective-c,macos,metadata,nsfilemanager,Objective C,Macos,Metadata,Nsfilemanager,我正在与NSFileManager合作,我能够获得文件的最后更新、创建日期。。。但我无法得到文件最后一次打开是什么时候。有没有办法得到这些信息 还有另一个问题,我通过pathExtension属性得到MIME,但通过这种方式我得到例如.pdf、.doc、。。。代替application/pdf、application/doc、text/txt、audio/vmw等,有没有办法自动获取这些信息 非常感谢 我认为NSURL可能与您所追求的目标非常接近,并且可能会根据您实际所做的工作而有所帮助 但它是
- (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);
}
我认为NSURL可能与您所追求的目标非常接近,并且可能会根据您实际所做的工作而有所帮助
但它是访问的而不是打开的
这意味着,例如:
如果打开它所访问的文件
如果您quicklook将访问该文件
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);
}
使用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);
使用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);
上次打开文件时,恐怕您无法获取信息。最接近的信息是修改日期(NSFileModificationDate)。我想你无法从该文件中找到MIME类型,但如果你知道它是例如.pdf,你可以创建一些自定义库来返回字符串application/pdf等。我相信你可以下载大多数MIME类型的文件。好的,非常感谢,这不是最好的消息,但谢谢;)上次打开文件时,恐怕您无法获取信息。最接近的信息是修改日期(NSFileModificationDate)。我想你无法从该文件中找到MIME类型,但如果你知道它是例如.pdf,你可以创建一些自定义库来返回字符串application/pdf等。我相信你可以下载大多数MIME类型的文件。好的,非常感谢,这不是最好的消息,但谢谢;)依赖于spotlight索引的文件依赖于spotlight索引的文件