Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 通过NSFileManager获取元数据_Objective C_Macos_Metadata_Nsfilemanager - Fatal编程技术网

Objective c 通过NSFileManager获取元数据

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可能与您所追求的目标非常接近,并且可能会根据您实际所做的工作而有所帮助 但它是

我正在与NSFileManager合作,我能够获得文件的最后更新、创建日期。。。但我无法得到文件最后一次打开是什么时候。有没有办法得到这些信息

还有另一个问题,我通过pathExtension属性得到MIME,但通过这种方式我得到例如.pdf、.doc、。。。代替application/pdf、application/doc、text/txt、audio/vmw等,有没有办法自动获取这些信息

非常感谢

我认为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);

}
我认为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索引的文件