3

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

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

是否还有其他用于真正文件类型检测的库?

任何帮助,将不胜感激。

4

2 回答 2

3

您可以尝试使用文件签名表自己实现这一点

例子:

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 ...
于 2012-04-26T12:43:31.383 回答
1

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

同样,CD .ISO 与 DVD .ISO 的文件类型相同吗?要么你分配你没有分配相同的数字。而我在上一句中特意写了“”,因为答案取决于你是否认为它们相同。

于 2012-04-26T13:23:02.893 回答