嗨,我想检测我的应用程序中的文件类型。libmagic是一个选项。但我不打算进行字符串比较,例如:使用libmagic输出mp3文件:Audio file with ID3 version 2.3.0, contains: MPEG ADTS, layer III, v1, 128 kbps, 44.1 kHz, JntStereo是否有其他库用于真正的文件类型检测?
Audio file with ID3 version 2.3.0, contains: MPEG ADTS, layer III, v1, 128 kbps, 44.1 kHz, JntStereo
pexxcrt21#
您可以尝试使用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 ...
ygya80vv2#
您错误地假定文件类型集是可枚举的。档案不是这样的你的关于.mp3文件(音频)的例子自然会导致视频。.AVI、.MKV、MPEG1、MPEG2和MPEG4视频之间的关系是什么?你不能用一个数字来描述这些关系。同样,CD.ISO和DVD.ISO的文件类型相同吗?要么你分配相同的数量,要么你不。我特别在前一句中写了“* 你 *”,因为答案取决于 * 你 * 是否认为它们是一样的。
2条答案
按热度按时间pexxcrt21#
您可以尝试使用File Signature Table自己实现它
示例:
ygya80vv2#
您错误地假定文件类型集是可枚举的。档案不是这样的你的关于.mp3文件(音频)的例子自然会导致视频。.AVI、.MKV、MPEG1、MPEG2和MPEG4视频之间的关系是什么?你不能用一个数字来描述这些关系。
同样,CD.ISO和DVD.ISO的文件类型相同吗?要么你分配相同的数量,要么你不。我特别在前一句中写了“* 你 *”,因为答案取决于 * 你 * 是否认为它们是一样的。