请问一个关于用zlib解压标准的包含多文件的zip文件的有关问题

请教一个关于用zlib解压标准的包含多文件的zip文件的问题.
我想在包含多个文件的zip压缩包(用通用的压缩软件压缩,比如winrar)中提取文件,我分析zip的文件结构后分析出了每个文件对应的压缩后的数据,然后我调用zlib的解压函数,对这些数据分别解压,但是失败.

然后我尝试把压缩包中的文件解压出后,用zlib的压缩函数压缩,发现zlib压缩后的数据比从zip压缩包中读取出的数据的前端多两个字节:0x78 0x9c,然后我尝试从zip压缩包中提取出文件数据后,手动在前面加上这两个字节,然后大多文件就能正确解压了,但部分文件还是不行,请问这是怎么回事?这两个字节是什么意思?如能回答,十分感谢!

------解决方案--------------------
标准zlib压缩过的数据块会以这两个字节开头,表明它是以算法的默认设置压缩的
另外,0x78 0xDA也很常见,跟前面一样不过采用的是最高压缩级别
------解决方案--------------------
zip可能会遇到的主要是下面几个,其他的要不就是预留给以后扩充的,要不就是我个人从未遇到的
0x0000 不压缩,
0x0001 shrunk,
0x0006 implod
0x0008 deflate
0x0009 deflate64
0x000E LZMA
0x0062 PPMd

(1)对于zip包来讲,最常见的肯定还是deflate其他的都比较少见
(2)shrunk和implod,非常非常少会遇到,而且也不是主流的压缩算法
(3)deflate64和lzma在zip中会遇到一些
(4)delfate64是deflate的一个变种,和deflate的区别在于几个常数不同,其他基本一致
上面的那个链接的库目前还不能支持,7zip支持这种变种
(5)lzma是7zip的核心算法。在所有用到压缩的地方,rar/deflate/lzma三者占了绝大部分
7z官网上有lzma的sdk下载,也有很多其他算法的代码,这里提到的这些应该都有
http://www.7-zip.org/
(6)ppmd有多个不同的版本,在zip中非常少会用到
但是rar中借用了ppmd的一些东西,也算是一个比较流行的算法