1

我正在我的可可应用程序中尝试这个来获取系统中目录/文件的信息。此方法返回我列出了一些关键属性的字典

-(NSDictionary *) metadataForFileAtPath:(NSString *) path {
    NSURL *url = [[[NSURL alloc] initFileURLWithPath:path] autorelease];

    MDItemRef itemRef = MDItemCreateWithURL(NULL, (CFURLRef)url);
    NSArray *attributeNames = (NSArray *)MDItemCopyAttributeNames(itemRef);
    NSDictionary *attributes = (NSDictionary *) MDItemCopyAttributes(itemRef, (CFArrayRef) attributeNames);
    CFRelease(itemRef);

    // probably it is leaking memory (attributeNames and attributes), better check with Instruments

    return attributes;
}

另一种方法...

NSDictionary *dict = [self metadataForFileAtPath];
NSString *date = [dict objectForKey:kMDItemFSCreationDate];

当我这样做时,我收到一条警告消息“不兼容的指针类型将'const CFStringRef'(又名'const struct __CFString *const')发送到'id'类型的参数”我正在尝试将它们类型转换为字符串,但它仍然存在。我没有找到我错的地方。

4

2 回答 2

3

我的问题通过这样做解决了

NSString *date = [dict objectForKey:@"kMDItemFSCreationDate"];

无论如何感谢您的帮助。

于 2013-08-23T06:36:27.580 回答
0

请从 linkbinarywithlibrery 添加“CFNetwork”框架。如果需要,请检查其他框架。

于 2013-08-10T10:33:25.913 回答