压缩工具

public class ZipUtil
extends Object

java.lang.Object
com.android.tradefed.util.ZipUtil


用于压缩相关操作的辅助类

概括

公共构造函数

ZipUtil ()

公共方法

static void addToZip (ZipOutputStream out, File file, relativePathSegs) addToZip (ZipOutputStream out, File file, relativePathSegs)

递归地将给定文件及其内容添加到 ZipOutputStream

static void applyPermission (File targetFile, CentralDirectoryInfo zipEntry)

应用在中央目录条目中配置的文件权限。

static void closeZip (ZipFile zipFile)

关闭打开的ERROR(/ZipFile) ,忽略任何异常。

static File createZip (File dir)

创建包含给定目录及其所有内容的临时 zip 文件的实用方法。

static File createZip ( files, String name) createZip ( files, String name)

创建包含给定文件的临时 zip 文件的实用方法。

static File createZip (File dir, String name)

创建包含给定目录及其所有内容的临时 zip 文件的实用方法。

static File createZip ( files) createZip ( files)

创建包含给定文件的临时 zip 文件的实用方法

static void createZip (File dir, File zipFile)

创建包含给定目录及其所有内容的 zip 文件的实用方法。

static void createZip ( files, File zipFile) createZip ( files, File zipFile)

创建包含给定文件的 zip 文件的实用方法

static File extractFileFromZip (ZipFile zipFile, String filePath)

将 zip 文件中的一个特定文件提取到 tmp 文件的实用方法

static void extractZip (ZipFile zipFile, File destDir)

将 zip 文件的全部内容提取到给定目录的实用方法

static void extractZip (ZipFile zipFile, File destDir, shouldExtract) extractZip (ZipFile zipFile, File destDir, shouldExtract)

将 zip 文件内容提取到给定目录的实用方法

static File extractZipToTemp (File zipFile, String nameHint)

将 zip 文件解压缩到前面带有字符串的临时目录

static getZipCentralDirectoryInfos (File partialZipFile, EndCentralDirectoryInfo endCentralDirInfo, boolean useZip64)

获取 zip 文件中文件的 {link CentralDirectoryInfo} 列表。

static getZipCentralDirectoryInfos (File partialZipFile, EndCentralDirectoryInfo endCentralDirInfo, long offset)

获取 zip 文件中文件的 {link CentralDirectoryInfo} 列表。

static getZipCentralDirectoryInfos (File partialZipFile, EndCentralDirectoryInfo endCentralDirInfo)

获取 zip 文件中文件的 {link CentralDirectoryInfo} 列表。

static getZipCentralDirectoryInfos (File partialZipFile, EndCentralDirectoryInfo endCentralDirInfo, long offset, boolean useZip64)

获取 zip 文件中文件的 {link CentralDirectoryInfo} 列表。

static void gzipFile (File file, File gzipFile)

创建单个文件的 gzip 压缩版本的帮助程序方法。

static boolean isZipFileValid (File zipFile, boolean thorough)

验证 zip 文件未损坏的实用方法。

static void unzipPartialZipFile (File partialZip, File targetFile, CentralDirectoryInfo zipEntry, LocalFileHeader localFileHeader, long startOffset)

从部分 zip 文件中提取请求的文件。

static void unzipPartialZipFolder (File targetFile, CentralDirectoryInfo zipEntry)

从部分 zip 文件中提取请求的文件夹并应用适当的权限。

受保护的方法

static void validateDestinationDir (File destDir, String filename)

公共构造函数

压缩工具

public ZipUtil ()

公共方法

添加到压缩包

public static void addToZip (ZipOutputStream out, 
                File file, 
                 relativePathSegs)

递归地将给定文件及其内容添加到 ZipOutputStream

参数
out ZipOutputStreamERROR(/ZipOutputStream)

file File :要添加到流中的ERROR(/File)

relativePathSegs :文件的相对路径,包括分隔符

投掷
如果无法将文件添加到 zip

申请权限

public static void applyPermission (File targetFile, 
                CentralDirectoryInfo zipEntry)

应用在中央目录条目中配置的文件权限。

参数
targetFile File :要设置权限的ERROR(/File)

zipEntry CentralDirectoryInfo :包含文件权限的CentralDirectoryInfo对象。

投掷
如果无法访问该文件。

关闭Zip

public static void closeZip (ZipFile zipFile)

关闭打开的ERROR(/ZipFile) ,忽略任何异常。

参数
zipFile ZipFile :要关闭的文件

创建Zip

public static File createZip (File dir)

创建包含给定目录及其所有内容的临时 zip 文件的实用方法。

参数
dir File :要压缩的目录

退货
File包含目录内容的临时 zip ERROR(/File)

投掷
如果创建 zip 文件失败

创建Zip

public static File createZip ( files, 
                String name)

创建包含给定文件的临时 zip 文件的实用方法。

参数
files :要压缩的文件列表

name String :创建的 zip 文件的基本名称(不带扩展名)。

退货
File包含目录内容的临时 zip ERROR(/File)

投掷
如果创建 zip 文件失败

创建Zip

public static File createZip (File dir, 
                String name)

创建包含给定目录及其所有内容的临时 zip 文件的实用方法。

参数
dir File :要压缩的目录

name String :创建的 zip 文件的基本名称(不带扩展名)。

退货
File包含目录内容的临时 zip ERROR(/File)

投掷
如果创建 zip 文件失败

创建Zip

public static File createZip ( files)

创建包含给定文件的临时 zip 文件的实用方法

参数
files :要压缩的文件列表

退货
File包含目录内容的临时 zip ERROR(/File)

投掷
如果创建 zip 文件失败

创建Zip

public static void createZip (File dir, 
                File zipFile)

创建包含给定目录及其所有内容的 zip 文件的实用方法。

参数
dir File :要压缩的目录

zipFile File :要创建的 zip 文件 - 它不应该已经存在

投掷
如果创建 zip 文件失败

创建Zip

public static void createZip ( files, 
                File zipFile)

创建包含给定文件的 zip 文件的实用方法

参数
files :要压缩的文件列表

zipFile File :要创建的 zip 文件 - 它不应该已经存在

投掷
如果创建 zip 文件失败

从Zip中提取文件

public static File extractFileFromZip (ZipFile zipFile, 
                String filePath)

将 zip 文件中的一个特定文件提取到 tmp 文件的实用方法

参数
zipFile ZipFile :要提取的ERROR(/ZipFile)

filePath String : 要提取的文件路径

退货
File ERROR(/File)或 null(如果未找到)

投掷
如果提取文件失败

extractZip

public static void extractZip (ZipFile zipFile, 
                File destDir)

将 zip 文件的全部内容提取到给定目录的实用方法

参数
zipFile ZipFile :要提取的ERROR(/ZipFile)

destDir File : 将文件解压到的本地目录

投掷
如果提取文件失败

extractZip

public static void extractZip (ZipFile zipFile, 
                File destDir, 
                 shouldExtract)

将 zip 文件内容提取到给定目录的实用方法

参数
zipFile ZipFile :要提取的ERROR(/ZipFile)

destDir File : 将文件解压到的本地目录

shouldExtract :是否应提取 ZipEntry 的谓词

投掷
如果提取文件失败

extractZipToTemp

public static File extractZipToTemp (File zipFile, 
                String nameHint)

将 zip 文件解压缩到前面带有字符串的临时目录

参数
zipFile File :要解压的 zip 文件

nameHint String : 临时目录的前缀

退货
File指向临时目录的ERROR(/File)

获取ZipCentralDirectoryInfos

public static  getZipCentralDirectoryInfos (File partialZipFile, 
                EndCentralDirectoryInfo endCentralDirInfo, 
                boolean useZip64)

获取 zip 文件中文件的 {link CentralDirectoryInfo} 列表。

参数
partialZipFile File :包含中央目录条目的部分 zip 文件的ERROR(/File)对象。

endCentralDirInfo EndCentralDirectoryInfo :zip 文件的EndCentralDirectoryInfo对象。

useZip64 boolean :支持部分下载 zip64 格式的布尔值。

退货
zip 文件的CentralDirectoryInfo列表

投掷
IO异常

获取ZipCentralDirectoryInfos

public static  getZipCentralDirectoryInfos (File partialZipFile, 
                EndCentralDirectoryInfo endCentralDirInfo, 
                long offset)

获取 zip 文件中文件的 {link CentralDirectoryInfo} 列表。

参数
partialZipFile File :包含中央目录条目的部分 zip 文件的ERROR(/File)对象。

endCentralDirInfo EndCentralDirectoryInfo :zip 文件的EndCentralDirectoryInfo对象。

offset long :部分 zip 文件中中央目录条目内容开始的偏移量。

退货
zip 文件的CentralDirectoryInfo列表

投掷
IO异常

获取ZipCentralDirectoryInfos

public static  getZipCentralDirectoryInfos (File partialZipFile, 
                EndCentralDirectoryInfo endCentralDirInfo)

获取 zip 文件中文件的 {link CentralDirectoryInfo} 列表。

参数
partialZipFile File :包含中央目录条目的部分 zip 文件的ERROR(/File)对象。

endCentralDirInfo EndCentralDirectoryInfo :zip 文件的EndCentralDirectoryInfo对象。

退货
zip 文件的CentralDirectoryInfo列表

投掷
IO异常

获取ZipCentralDirectoryInfos

public static  getZipCentralDirectoryInfos (File partialZipFile, 
                EndCentralDirectoryInfo endCentralDirInfo, 
                long offset, 
                boolean useZip64)

获取 zip 文件中文件的 {link CentralDirectoryInfo} 列表。

参数
partialZipFile File :包含中央目录条目的部分 zip 文件的ERROR(/File)对象。

endCentralDirInfo EndCentralDirectoryInfo :zip 文件的EndCentralDirectoryInfo对象。

offset long :部分 zip 文件中中央目录条目内容开始的偏移量。

useZip64 boolean :支持部分下载 zip64 格式的布尔值。

退货
zip 文件的CentralDirectoryInfo列表

投掷
IO异常

gzip文件

public static void gzipFile (File file, 
                File gzipFile)

创建单个文件的 gzip 压缩版本的帮助程序方法。

参数
file File :原始文件

gzipFile File : 放置压缩内容的文件

投掷
IO异常

压缩文件是否有效

public static boolean isZipFileValid (File zipFile, 
                boolean thorough)

验证 zip 文件未损坏的实用方法。

参数
zipFile File :要检查的ERROR(/File)

thorough boolean :是否尝试完全提取存档。如果为false ,此方法将无法检测格式良好的存档中的 CRC 错误。

退货
boolean如果文件似乎已损坏,则为false ;否则为true

投掷
如果文件无法打开或读取

unzip部分Zip文件

public static void unzipPartialZipFile (File partialZip, 
                File targetFile, 
                CentralDirectoryInfo zipEntry, 
                LocalFileHeader localFileHeader, 
                long startOffset)

从部分 zip 文件中提取请求的文件。

此方法假设压缩时所有文件都位于同一磁盘上。目前尚不支持以下功能:

Zip 文件大于 4GB

ZIP64(需要更新压缩大小的 ZipLocalFileHeader)

加密的 zip 文件

符号链接

参数
partialZip FileERROR(/File)它是 zip 文件的一部分。

targetFile File :保存提取的文件的ERROR(/File)

zipEntry CentralDirectoryInfo :要从部分 zip 文件中提取的文件的CentralDirectoryInfo对象。

localFileHeader LocalFileHeader :要从部分 zip 文件中提取的文件的LocalFileHeader对象。

startOffset long :要提取的文件的起始偏移量。

投掷
IO异常

unzip部分Zip文件夹

public static void unzipPartialZipFolder (File targetFile, 
                CentralDirectoryInfo zipEntry)

从部分 zip 文件中提取请求的文件夹并应用适当的权限。

参数
targetFile File :保存提取的文件的ERROR(/File)

zipEntry CentralDirectoryInfo :要从部分 zip 文件中提取的文件的CentralDirectoryInfo对象。

投掷
IO异常

受保护的方法

验证目标目录

protected static void validateDestinationDir (File destDir, 
                String filename)

参数
destDir File

filename String