我希望找到一个文件的Finder“Kind”。例如,对于文件“foo.css”,我想要字符串“CSS样式表”。
到目前为止,我正在做这样的事情:
NSURL *fileURL = [[NSURL alloc] initFileURLWithPath: filename];
NSString *utiType;
NSError *error;
BOOL success = [fileURL getResourceValue: &utiType
forKey: NSURLTypeIdentifierKey
error: &error];
if (!success) {
NSLog(@"failure during reading utiType: error = %@", error);
return;
}
NSString *utiDescription = (__bridge NSString *) UTTypeCopyDescription((__bridge CFStringRef) utiType);
if (utiDescription) {
// use utiDescription here...
}
这给了我UTI的人类可读名称,在某些情况下运行良好(“foo.html”给出“HTML文本”),但对于CSS文件,它返回nil,所以显然不是同样的事情Finder显示在“Kind”栏中。
你怎么得到那种文件?
答案 0 :(得分:2)
尝试LSCopyKindStringForURL
,传递文件网址。
答案 1 :(得分:1)
我能够获得一个包含typeOfFile:error:后跟localizedDescriptionForType:的.css文件类型的字符串,但字符串不是“CSS样式表”,就像你想要的那样,它是“ Dashcode CSS Document“。其他扩展的其他一些示例:
ext typeOfFile localizedDescriptionForType
------------------------------------------------------------------
.css com.apple.dashcode.css Dashcode CSS Document
.php public.php-script PHP script
.html public.html HTML text
.txt public.plain-text text