2012-04-26 6 views
3

こんにちは私のアプリケーションでファイルの種類を検出したい。 libmagicはこれを行うオプションです。しかし、私は、たとえば、文字列コンペアつもりはないのですTrueファイルタイプの検出

のlibmagicを使用してmp3ファイル出力:ID3バージョン2.3.0でのオーディオファイルには、含まれています:MPEG ADTS、層III、V1、128 kbpsの、44.1kHzで、JntStereo

True File Type Detectionのライブラリは他にありますか?

ご協力いただければ幸いです。

+0

'(mime-type、default extension、details、etc.)の検出結果として何らかの構造体が必要ですか? ' –

+0

私は数字だけが利用可能な場合はそれをしたいです。 – iyasar

+0

どのような数字ですか? –

答えて

3

あなたはFile Signature Table

例を使って自分でこれを実装しようとすることができます:あなたは間違ってファイルタイプのセットが可算であることを前提とし

Hex Signature  File Extension   ASCII Signature, File Description 

49 44 33      MP3   ID3 
               MPEG-1 Audio Layer 3 (MP3) audio file 

43 44 30 30 31     ISO   CD001 
               ISO-9660 CD Disc Image 
               This signature usually ... 
+0

これは完璧ですが、ここでは保守性の問題があります。開発者はメンテナンスのために常にそのファイルに関心を持たなければなりません。私はmime-typeを選択しましたが、整数比較のようには効果的ではありませんが、他の方が優れています(長いファイル記述の比較)。 – iyasar

1

。それはファイルの仕組みではありません。 .mp3ファイル(オーディオ)に関するあなたの例は、自然にビデオにつながります。 .AVI、.MKV、MPEG1、MPEG2、MPEG4ビデオの関係は何ですか?これらの関係を単一の数値で取り込むことはできません。

同様に、CD .ISOはDVD .ISOと同じファイルタイプですか?どちらの番号にも同じ番号を割り当てないでください。そして、答えはと同じであるかどうかによって決まるため、前の文で "あなたは"と書いてあります。

+0

私は整数比較の代わりにMIMEタイプを選択しました。ご返信ありがとうございます。 – iyasar

+0

それでも、_detection_問題に対する解決策はありません。 – MSalters

+0

私は100%正確さを必要としません。 – iyasar

関連する問題