如何判断压缩文件的文件类型

        判断压缩文件的类型。我用了ContentType,输出他的ContentType为null。用文件头判断只有rar和zip,不全面。
        还有什么方法能判断出他的类型呢?要准确,还能判断出各种压缩文件类型。

拿文件名取后缀判断不行吗?

可通过文件头中的标识进行识别

7z 377ABCAF271C

tar.z 1FA0

gz 1F8B08

zip 504B0304140000

rar 526172211A0700

tar.bz2 425A68

bz2 425A68

等等

其他文件类型就需要一个个特别处理了
比如你分析7zip的压缩方式,然后得到一个识别的pattern

http://zhidao.baidu.com/link?url=2HJ32efz7sPV95SJV9K7mTFBeo2XKiJo5TmtchuFMa2-0mbNbSlzYl1Hn1DXdHQPDdbYfAWL8Vgcd2h6_fNCja