真实文件类型检测

时间:2012-04-26 12:00:43

标签: c++ c file-type

您好我想在我的应用程序中检测文件类型。 libmagic是一个选择。但我不打算进行字符串比较,例如

使用libmagic输出的mp3文件:ID3版本为2.3.0的音频文件,包含:MPEG ADTS,第III层,v1,128 kbps,44.1 kHz,JntStereo

还有其他用于真实文件类型检测的库吗?

任何帮助都将不胜感激。

2 个答案:

答案 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 ...

答案 1 :(得分:1)

您错误地认为该文件类型集是可枚举的。这不是文件的工作方式。您关于.mp3文件(音频)的示例自然会导致视频。 .AVI,.MKV,MPEG1,MPEG2和MPEG4视频之间有什么关系?您无法在一个数字中捕获这些关系。

同样,CD .ISO与DVD .ISO的文件类型相同吗?要么指定相同数量的要么。我在上一句中专门写了“ you ”,因为答案取决于是否认为它们是相同的。