您好,欢迎访问三七文档
zip文件格式说明zip文件由三部分组成:压缩的文件内容源数据、压缩的目录源数据、目录结束标识结构1、压缩的文件内容源数据:记录着压缩的所有文件的内容信息,其数据组织结构是对于每个文件都由fileheader、filedata、datadescriptor三部分组成。1)Fileheader:用于标识该文件的开始,结构说明如下:HeaderOffsetBytesDescription译04Localfileheadersignature=0x04034b50(readasalittle-endiannumber)文件头标识,值固定(0x04034b50)42Versionneededtoextract(minimum)解压文件所需pkware最低版本62Generalpurposebitflag通用位标记82Compressionmethod压缩方法102Filelastmodificationtime文件最后修改时间122Filelastmodificationdate文件最后修改日期144CRC-32说明采用的算法。184Compressedsize压缩后的大小。224Uncompressedsize非压缩的大小。262Filenamelength(n)文件名长度282Extrafieldlength(m)扩展区长度30nFilename文件名30+nmExtrafield扩展区2)filedata:相应压缩文件的源数据。3)datadescriptor:用于标识该文件压缩结束,该结构只有在相应的header中通用标记字段的第3位设为1时才会出现,紧接在压缩文件源数据后。这个数据描述符只用在不能对输出的ZIP文件进行检索时使用。例如:在一个不能检索的驱动器(如:磁带机上)上的ZIP文件中。如果是磁盘上的ZIP文件一般没有这个数据描述符。结构说明如下:DatadescriptorOffsetBytesDescription[18]译 04Localfileheadersignature=0x08074b50本地header标记 44CRC-32CRC-32 84Compressedsize压缩后大小 124Uncompressedsize非压缩的大小2、压缩的目录源数据对于待压缩的目录而言,每一个子目录对应一个压缩目录源数据,记录该目录的描述信息。压缩包中所有目录源数据连续存储在整个归档包的最后,这样便于向包中追加新的文件。结构说明如下:CentraldirectoryfileheaderOffsetBytesDescription[18]译 04Centraldirectoryfileheadersignature=0x02014b50核心目录文件header标识=(0x02014b50) 42Versionmadeby压缩所用的pkware版本 62Versionneededtoextract(minimum)解压所需pkware的最低版本 82Generalpurposebitflag通用位标记102Compressionmethod压缩方法122Filelastmodificationtime文件最后修改时间142Filelastmodificationdate文件最后修改日期164CRC-32CRC-32算法204Compressedsize压缩后大小244Uncompressedsize未压缩的大小282Filenamelength(n)文件名长度302Extrafieldlength(m)扩展域长度322Filecommentlength(k)文件注释长度342Disknumberwherefilestarts文件开始位置的磁盘编号362Internalfileattributes内部文件属性384Externalfileattributes外部文件属性424Relativeoffsetoflocalfileheader.Thisisthenumberofbytesbetweenthestartofthefirstdiskonwhichthefileoccurs,andthestartofthelocalfileheader.Thisallowssoftwarereadingthecentraldirectoryto本地文件header的相对位移。locatethepositionofthefileinsidetheZIPfile.46nFilename目录文件名46+nmExtrafield扩展域46+n+mkFilecomment文件注释内容3、目录结束标识结构目录结束标识存在于整个归档包的结尾,用于标记压缩的目录数据的结束。结构说明如下:EndofcentraldirectoryrecordOffsetBytesDescription[18]译 04Endofcentraldirectorysignature=0x06054b50核心目录结束标记(0x06054b50) 42Numberofthisdisk当前磁盘编号 62Diskwherecentraldirectorystarts核心目录开始位置的磁盘编号 82Numberofcentraldirectoryrecordsonthisdisk该磁盘上所记录的核心目录数量102Totalnumberofcentraldirectoryrecords核心目录结构总数124Sizeofcentraldirectory(bytes)核心目录的大小164Offsetofstartofcentraldirectory,relativetostartofarchive核心目录开始位置相对于archive开始的位移202Commentlength(n)注释长度22nComment注释内容
本文标题:zip文件格式说明
链接地址:https://www.777doc.com/doc-3175803 .html