2012-03-21 7 views
11

に基づくものではありませんIOSのMIMEタイプは、我々はファイルの拡張子からファイルのMIMEタイプを得ることができることを知っているが、我々は、ファイルの拡張子を変更して、我々は間違っを取得する例をexactly.forいない得ることができますMIMEタイプ。 とも我々はurlmon.dllをUsing .NET, how can you find the mime type of a file based on the file signature not the extensionを使用して(、C#でファイル署名によってMIMEタイプを取得する方法を知って、私の質問はどのように我々はIOSの正確なMIMEタイプを得ることができることを、関係なく、ファイルの拡張子はによって変更されていませんさ誰か、私たちは右のMIMEタイプをgettheすることができます。はどうすれば延長

は、あなたが、私は、ファイルの パスを取得正確にいつ、私は右のMIMEタイプを取得する方法を教えてでしょう、あなたの注意を〜!

+0

iOSの 'ファイルsignature'としてはそのような概念はありません。 –

+0

あなたのコメントをありがとう。ファイルのパスを取得したときに正しいMIMEタイプを得る方法を教えてください。 – HamasN

答えて

27

をお願いします。

のiOSは、漢へUniform Type Identifiers(UTI)の概念を使用していますdleドキュメントタイプ。

NSString *path; // contains the file path 

// Get the UTI from the file's extension: 

CFStringRef pathExtension = (__bridge_retained CFStringRef)[path pathExtension]; 
CFStringRef type = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, pathExtension, NULL); 
CFRelease(pathExtension); 

// The UTI can be converted to a mime type: 

NSString *mimeType = (__bridge_transfer NSString *)UTTypeCopyPreferredTagWithClass(type, kUTTagClassMIMEType); 
if (type != NULL) 
    CFRelease(type); 

UTIをあまり強力でないMIMEタイプに変換するのではなく、目的に合わせて直接使用することを検討する必要があります。

+2

正しいMIMEタイプが得られません。実際のファイルをチェックすることさえできません。ちょうどこの回答@Johnnywho – Johnnywho

+1

は(明示的に指定し、コメント内のOPによって要求されたように)**パスから** MIMEタイプを取得する方法についてです** mimetypeをする**拡張子を翻訳しています。 –

+4

しかし、そのタイトルを持つ元の質問は、拡張子に**基づいていない** mimeの種類に関係しています。そのようにして、あなたの答えは誤解を招き、コードを試すのに無駄な時間を費やしました。パスは拡張である必要があることを明示的に述べる必要があります。あなたの答えのどれもそれを言っていることはありません。 – Johnnywho

関連する問題