A maneira mais fácil de fazer isso é usar UTTypeCreatePreferredIdentifierForTag()
:
#import <Foundation/Foundation.h>
int main (int argc, const char * argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSArray *args = [[NSProcessInfo processInfo] arguments];
if ([args count] < 2) {
printf("usage:\n");
printf("uti <filenameExtension>\n");
exit(EXIT_SUCCESS);
}
NSArray *extensions = [args
subarrayWithRange:NSMakeRange(1, [args count] - 1)];
for (NSString *filenameExtension in extensions) {
NSString *utiType = (NSString *)UTTypeCreatePreferredIdentifierForTag(
kUTTagClassFilenameExtension,
(CFStringRef)filenameExtension, NULL);
printf("%s\n", [utiType UTF8String]);
[(NSString *)utiType release];
}
[pool drain];
return 0;
}
Executável uti
compilado e código-fonte: uti.zip
Uso:
MacPro:~ mdouma46$ /Users/mdouma46/Developer/uti/uti png tga mov sdfad
public.png
com.truevision.tga-image
com.apple.quicktime-movie
dyn.age81g3dgqfwa
(extensões de arquivo "desconhecidas" são mapeadas para UTIs que começam com o prefixo dyn.
).