您好我想检测我的应用程序中的文件类型。libmagic 是一种选择。但我不打算进行字符串比较,例如
使用 libmagic 输出的 mp3 文件:ID3 版本 2.3.0 的音频文件,包含:MPEG ADTS,第三层,v1,128 kbps,44.1 kHz,JntStereo
是否还有其他用于真正文件类型检测的库?
任何帮助,将不胜感激。
您可以尝试使用文件签名表自己实现这一点
例子:
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 ...
您错误地认为文件类型集是可枚举的。这不是文件的工作方式。您关于 .mp3 文件(音频)的示例自然会导致视频。.AVI、.MKV、MPEG1、MPEG2 和 MPEG4 视频之间有什么关系?您无法在一个数字中捕获这些关系。
同样,CD .ISO 与 DVD .ISO 的文件类型相同吗?要么你分配你没有分配相同的数字。而我在上一句中特意写了“你”,因为答案取决于你是否认为它们相同。