嗨我想检测我的应用程序中的文件类型。 libmagic是一个选项。但我不打算字符串比较,例如真正的文件类型检测
使用libmagic MP3文件输出:音频文件,ID3版本2.3.0,包含:MPEG ADTS,第三层,V1,128 kbps的,44.1千赫,JntStereo
是否有任何其他库用于True File Type Detection?
任何帮助,将不胜感激。
嗨我想检测我的应用程序中的文件类型。 libmagic是一个选项。但我不打算字符串比较,例如真正的文件类型检测
使用libmagic MP3文件输出:音频文件,ID3版本2.3.0,包含:MPEG ADTS,第三层,V1,128 kbps的,44.1千赫,JntStereo
是否有任何其他库用于True File Type Detection?
任何帮助,将不胜感激。
你可以尝试通过自己的使用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 ...
这将是完美的,但我们在这里有可维护性问题。开发人员总是必须对该文件感兴趣以进行维护。我确实选择了MIME类型,它不像整数比较那样有效,但是更好一个(长文件描述的比较)。 – iyasar 2012-05-14 12:46:41
您错误地假定了一组文件类型的枚举。这不仅仅是文件的工作方式。您关于.mp3文件(音频)的示例自然会导致视频。 .AVI,.MKV,MPEG1,MPEG2和MPEG4视频之间的关系是什么?你无法在一个数字中捕捉到这些关系。
同样,是CD .ISO与DVD .ISO相同的文件类型?要么你分配相同数量的你没有。而且我在前面的句子中专门写了“你”,因为答案取决于你认为它们是否相同。
您是否需要某种结构作为检测结果'(mime-type,默认扩展名,详细信息等)'? – 2012-04-26 12:05:37
我想只有数字,如果它是可用的。 – iyasar 2012-04-26 12:11:05
什么样的号码? – 2012-04-26 12:17:09