`

ZIP文件格式详解

阅读更多
    一个 ZIP 文件由三个部分组成:
       
        压缩源文件数据区+压缩源文件目录区+压缩源文件目录结束标志
    1、压缩源文件数据区
    在这个数据区中每一个压缩的源文件/目录都是一条记录,记录的格式如下:
     
       [文件头+ 文件数据 + 数据描述符]

       a、文件头结构
         组成                     长度
      文件头标记                  4 bytes  (0x04034b50)
      解压文件所需 pkware 版本    2 bytes
      全局方式位标记              2 bytes
    压缩方式                    2 bytes
    最后修改文件时间             2 bytes
   最后修改文件日期             2 bytes
   CRC-32校验                  4 bytes
   压缩后尺寸                  4 bytes
   未压缩尺寸                  4 bytes
   文件名长度                  2 bytes
      扩展记录长度                2 bytes
   文件名                     (不定长度)
   扩展字段                   (不定长度)
     
     
        b、文件数据
      
        c、数据描述符
   组成     长度
    CRC-32校验                  4 bytes
    压缩后尺寸                   4 bytes
   未压缩尺寸                   4 bytes
      这个数据描述符只在全局方式位标记的第3位设为1时才存在(见后详解),紧接在压缩数据的最后一个字节后。这个数据描述符只用在不能对输出的 ZIP 文件进行检索时使用。例如:在一个不能检索的驱动器(如:磁带机上)上的 ZIP 文件中。如果是磁盘上的ZIP文件一般没有这个数据描述符。
     2、压缩源文件目录区
     在这个数据区中每一条纪录对应在压缩源文件数据区中的一条数据
      组成                            长度
      目录中文件文件头标记             4 bytes  (0x02014b50)
      压缩使用的 pkware 版本          2 bytes
      解压文件所需 pkware 版本         2 bytes
      全局方式位标记                   2 bytes
      压缩方式                        2 bytes
      最后修改文件时间                 2 bytes
      最后修改文件日期                 2 bytes
      CRC-32校验                 4 bytes
      压缩后尺寸                      4 bytes
      未压缩尺寸                      4 bytes
      文件名长度                      2 bytes
      扩展字段长度                    2 bytes
      文件注释长度                    2 bytes
      磁盘开始号                      2 bytes
      内部文件属性                    2 bytes
      外部文件属性                    4 bytes
        局部头部偏移量                  4 bytes
      文件名                       (不定长度)
      扩展字段                     (不定长度)
        文件注释                     (不定长度)
    3、压缩源文件目录结束标志
       组成                          长度
        目录结束标记                    4 bytes  (0x02014b50)
        当前磁盘编号                    2 bytes
        目录区开始磁盘编号              2 bytes
      本磁盘上纪录总数                 2 bytes
      目录区中纪录总数                 2 bytes
      目录区尺寸大小                   4 bytes
      目录区对第一张磁盘的偏移量        4 bytes
      ZIP 文件注释长度                 2 bytes
      ZIP 文件注释                   (不定长度)
分享到:
评论

相关推荐

    zip文件格式1

    Zip 文件格式详解 Zip 文件格式是一种广泛使用的压缩文件格式,由 Phil Katz 于 1989 年创造。它能够将多个文件压缩成一个文件,方便存储和传输。下面是对 Zip 文件格式的详细解释。 压缩源文件数据区 压缩源文件...

    获取zip文件编码格式 cpdetector.zip

    "获取zip文件编码格式 cpdetector.zip" 是一个工具,它能够帮助我们识别ZIP文件内文本文件的编码格式。 这个工具的关键依赖于三个JAR文件:antlr-1.0.jar、cpdetector-1.08.jar和jchardet-1.0.jar。这些库提供了...

    压缩文件格式分析的示例文件

    ZIP文件通常包含一个中央目录,记录了每个压缩文件的信息,包括文件名、大小、日期、时间以及压缩方法。 综上所述,本文的主题涵盖了压缩文件的基本概念、常见的压缩格式(如ZIP),以及如何使用编程语言(如Python...

    DXF文件格式详解(全).zip_dxf_dxf文件的格式_dxf详解_sandei2_解析dxf格式

    "DXF文件格式详解(全).zip"是一个压缩包,包含了对DXF格式的全面解析,对于需要理解或处理DXF文件的用户来说,是一个宝贵的资源。 DXF文件格式的核心在于其结构,它分为多个部分,包括标题块、表格、实体和结束标记...

    详解Java无需解压直接读取Zip文件和文件内容

    "Java读取Zip文件和文件内容" Java无需解压直接读取Zip文件和文件内容是Java语言中的一种常见操作,通过使用java.util.zip包中的ZipFile、ZipInputStream和ZipEntry类,我们可以轻松地读取Zip文件和文件内容。下面...

    C++实现ZIP文件解压

    总的来说,C++实现ZIP文件解压涉及对ZIP文件格式的深入了解,包括其结构、压缩方法和元数据。这个过程需要对文件I/O、内存管理和错误处理有扎实的理解。尽管本文提供了基本的思路,但在实际应用中,可能需要进一步的...

    dxf文件格式详解.zip

    DXF 文件本质上由代码及关联值对组成。代码(通常称为组码)表明其后的值的类型。使用这些组码和值对,可以将 DXF 文件组织到由记录组成的区域中,这些记录由组码和数据项目组成。在 DXF 文件中,每个组码和值都各占...

    emf文件格式详解

    **微软EMF文件格式详解.pdf**:这份文档很可能是微软官方或第三方专家提供的关于EMF格式的详细指南。通常,它会涵盖EMF的基本结构、记录类型、图形操作、颜色管理、图元定义等内容。通过阅读这份文档,读者可以了解...

    Curl实现Get下载zip文件、post上传zip文件、普通post请求等

    本篇将详细介绍如何利用C++结合Curl库实现GET下载ZIP文件、POST上传ZIP文件以及普通POST请求以获取JSON数据。 首先,我们要理解GET和POST在网络请求中的基本概念。GET是HTTP协议中最常见的方法,用于请求服务器发送...

    作业文件.zip

    二、.zip文件格式详解 1. .zip文件结构:“作业文件.zip”是一个.zip格式的压缩包,内部可能包含一个或多个文件或文件夹。.zip格式采用分块存储,每个块包含了文件的元数据(如文件名、时间戳)和经过压缩的数据。 ...

    zip格式升级包解包封包签名工具v1.2.rar

    ZIP是一种数据压缩和归档格式,能够将多个文件和文件夹打包成一个单一的ZIP文件,便于传输和存储。ZIP文件内部包含了每个原始文件的压缩数据和元信息,如文件名、时间戳和权限设置等。 “ZIP格式升级包解包封包签名...

    PhotoShop文件格式解析 - 百度文库.pdf

    对于解析得到的中间格式(json格式),我们根据文本的坐标以及位置等信息进行结构化提取。本项目做的主要是医疗报告单的解析与提取。 我们把每份报告单的内容分为四部分:title,head,body(table),bottom 对于我们...

    cpp-pkg2zip解密PlayStationVitapkg文件并打包成zip文件

    在本篇中,我们将深入探讨如何使用cpp-pkg2zip工具来解密pkg文件并将其打包成zip文件,这是一个与C/C++编程相关的技术实践。 cpp-pkg2zip是一个开源项目,由开发者mmozeiko编写,用于处理PS Vita的pkg文件。这个...

    windows下压缩的zip文件,上传到Linux后unzip不认的解决办法

    7-Zip支持创建跨平台兼容的ZIP文件,你可以选择使用“Unix”格式,这样生成的ZIP文件在Linux下更容易被`unzip`识别。 3. **使用通用格式**: 另一个解决方案是使用更通用的压缩格式,如.tar.gz或.tar.bz2,这两种...

    Zip文件解析(包含中文目录)

    Zip文件格式是计算机中广泛使用的文件压缩和归档格式,它允许用户将多个文件和目录打包成一个单一的可移动和存储的文件。在本文中,我们将深入探讨Zip文件解析,特别是涉及到中文目录的情况。 首先,Zip文件的核心...

    ABAP从FTP下载文件并解析到内表移动文件位置.zip

    然后,将ZIP文件内容解析到内表,我们可以遍历`lt_files_info`,读取每个文件的内容,并将其转换为字符格式存储到内表中。例如: ```abap LOOP AT lt_files_info INTO DATA(ls_file_info). DATA(lv_file_content) ...

    C语言实现Zip压缩解压.rar

    ZIP文件格式的标准由PKWARE公司制定,并由Info-ZIP组织进行开源实现。在C语言中实现ZIP操作,我们需要理解其内部结构和算法。 首先,ZIP文件的基本结构包括一个中央目录和多个本地文件头。每个本地文件头包含文件的...

    zip文件修复工具

    这可能包括解析压缩块、解密被保护的ZIP文件等。 3. **修复**:一旦分析完成,工具会尝试修复ZIP文件的错误,包括修复损坏的压缩数据、恢复丢失的文件名和路径等。 4. **预览和恢复**:在修复过程中,高级的修复...

    将一个目录内的内容打包到zip文件以及将zip文件解压到某个目录(ZipPack).zip

    zlib库帮助处理ZIP文件的创建和解析。 5. **文件I/O操作**:在C++中,文件输入/输出(I/O)操作是通过标准库中的fstream类进行的。在打包过程中,需要读取目录中的每个文件并写入到ZIP文件;解压时,则需要从ZIP...

    ucos移植zlib和zip文件解压缩

    3. 解析ZIP文件:在UCOS应用中,通过UNZIP库提供的接口读取ZIP文件,遍历每个条目,调用ZLIB的解压缩函数来解压数据。 4. 存储解压缩后的文件:根据ZIP文件中的信息,在UCOS系统的文件系统上创建相应的文件,写入...

Global site tag (gtag.js) - Google Analytics