Objective-cでContent-Type(MIME TYPE)を調べる方法
前回Rubyで調べる方法を書いたので今度はObjective-c版。ついでにファイル名や拡張子を取得する方法も。
// 対象のファイルのフルパス
NSString* filePath = @"/Users/Hoge/Desktop/memo.pdf";
// ファイル名を取得
NSString *fileName = [filePath lastPathComponent];
// 拡張子を取得
NSString *fileExtension = [filePath pathExtension];
// フルパスからMIMEタイプを取得
+ (NSString*) mimeTypeForFileAtPath: (NSString *) path {
if (![[NSFileManager defaultManager] fileExistsAtPath:path]) {
return nil;
}
CFStringRef UTI = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, (CFStringRef)[path pathExtension], NULL);
CFStringRef mimeType = UTTypeCopyPreferredTagWithClass (UTI, kUTTagClassMIMEType);
CFRelease(UTI);
if (!mimeType) {
return @"application/octet-stream";
}
return [NSMakeCollectable((NSString *)mimeType) autorelease];
}
やっぱRubyの方が楽だな。色々やってる人が多いし。(俺のサーチ力不足だろうけど)