ファイルフォーマットとメタデータ
- id:at_yasu:20070814:1187058016
つか、ファイルのMIMEタイプとか拾えないのかね・・・
用途が分からないので引用元とは関係無いかも知れないけど。
以前ファイルからData URLを作ろうとしてMIMEタイプが必要になったので、その時使った方法。
MDItemRef item = MDItemCreate(kCFAllocatorDefault, (CFStringRef) path); if ( item ) { CFStringRef uti = MDItemCopyAttribute(item, kMDItemContentType); CFRelease(item); if ( uti ) { CFStringRef mimeType = UTTypeCopyPreferredTagWithClass((CFStringRef) uti, kUTTagClassMIMEType); CFRelease(uti); if ( mimeType ) { //ここでmimeTypeを好きな所に格納。 CFRelease(mimeType); } } }
要はメタデータに格納されているUTI*1を貰って、それをMIMEタイプに変換している。Spotlightを無効にしているフォルダのファイルがどうなるのかは未検証。
余談
このコードを引っ張り出していたら、releaseし忘れを見付けた。Core Foundationはautoreleaseできないから面倒だ。