c++ 真正的文件类型检测

vnjpjtjt  于 2023-07-01  发布在  其他
关注(0)|答案(2)|浏览(180)

嗨,我想检测我的应用程序中的文件类型。libmagic是一个选项。但我不打算进行字符串比较,例如:
使用libmagic输出mp3文件:Audio file with ID3 version 2.3.0, contains: MPEG ADTS, layer III, v1, 128 kbps, 44.1 kHz, JntStereo
是否有其他库用于真正的文件类型检测?

pexxcrt2

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 ...
ygya80vv

ygya80vv2#

您错误地假定文件类型集是可枚举的。档案不是这样的你的关于.mp3文件(音频)的例子自然会导致视频。.AVI、.MKV、MPEG1、MPEG2和MPEG4视频之间的关系是什么?你不能用一个数字来描述这些关系。
同样,CD.ISO和DVD.ISO的文件类型相同吗?要么你分配相同的数量,要么你不。我特别在前一句中写了“* 你 *”,因为答案取决于 * 你 * 是否认为它们是一样的。

相关问题