2012-04-26 98 views
3

嗨我想檢測我的應用程序中的文件類型。 libmagic是一個選項。但我不打算字符串比較,例如真正的文件類型檢測

使用libmagic MP3文件輸出:音頻文件,ID3版本2.3.0,包含:MPEG ADTS,第三層,V1,128 kbps的,44.1千赫,JntStereo

是否有任何其他庫用於True File Type Detection?

任何幫助,將不勝感激。

+0

您是否需要某種結構作爲檢測結果'(mime-type,默認擴展名,詳細信息等)'? – 2012-04-26 12:05:37

+0

我想只有數字,如果它是可用的。 – iyasar 2012-04-26 12:11:05

+0

什麼樣的號碼? – 2012-04-26 12:17:09

回答

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類型,它不像整數比較那樣有效,但是更好一個(長文件描述的比較)。 – iyasar 2012-05-14 12:46:41

1

您錯誤地假定了一組文件類型的枚舉。這不僅僅是文件的工作方式。您關於.mp3文件(音頻)的示例自然會導致視頻。 .AVI,.MKV,MPEG1,MPEG2和MPEG4視頻之間的關係是什麼?你無法在一個數字中捕捉到這些關係。

同樣,是CD .ISO與DVD .ISO相同的文件類型?要麼你分配相同數量的你沒有。而且我在前面的句子中專門寫了「」,因爲答案取決於認爲它們是否相同。

+0

我確實選擇了MIME類型而不是整數比較。謝謝您的回覆。 – iyasar 2012-05-14 12:48:50

+0

儘管如此,這仍然沒有解決_detection_問題。 – MSalters 2012-05-14 14:58:39

+0

我不需要100%的準確性。 – iyasar 2012-05-14 17:18:37