首先要把你要改的文件的CentralDirectoryFileHeader和LocalFileHeader中的GeneralPurposeBitFlag由0改成8(如果已经有其他置位,则要重新计算,最后效果就是让bit3位置1)。
然后DataDescriptor加入到要改文件压缩数据的结束处(下一个文件的开始处),一共16byte。DataDescriptor里面的具体内容可以参考CentralDirectoryFileHeader和LocalFileHeader里面的相应内容。
然后修改要改文件后面所有文件的CentralDirectoryFileHeader中的RelativeOffsetOfLocalHeader。都要加上16(10进制数)。最后要把ZIP包的EndOfCentralDirectory中的CentralDirectoryOffset也加上16(10进制数)。OK了。
用winrar等工具测试能够正常解压。
阅读(1103) | 评论(0) | 转发(0) |