ファイルの Finder の「種類」を取得したい。たとえば、ファイル「foo.css」の場合、文字列「CSS style sheet」が必要です。
これまでのところ、私は次のようなことをしています:
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 と同じではありません。 「種類」欄に表示されます。
ファイルの種類を取得するにはどうすればよいですか?