ZipUtil
public
class
ZipUtil
extends Object
| java.lang.Object | |
| ↳ | com.android.tradefed.util.ZipUtil |
用于压缩相关操作的辅助类
摘要
公共构造函数 | |
|---|---|
ZipUtil()
|
|
公共方法 | |
|---|---|
static
void
|
addToZip(ZipOutputStream out, File file,
递归地将给定文件及其内容添加到 ZipOutputStream |
static
void
|
applyPermission(File targetFile, CentralDirectoryInfo zipEntry)
应用在中央目录条目中配置的文件权限。 |
static
void
|
closeZip(ZipFile zipFile)
关闭打开的 |
static
File
|
createZip(File dir)
用于创建包含给定目录及其所有内容的临时 ZIP 文件的实用程序方法。 |
static
File
|
createZip(
用于创建包含给定文件的临时 ZIP 文件的实用程序方法。 |
static
File
|
createZip(File dir, String name)
用于创建包含给定目录及其所有内容的临时 ZIP 文件的实用程序方法。 |
static
File
|
createZip(
用于创建包含给定文件的临时 ZIP 文件的实用程序方法 |
static
void
|
createZip(File dir, File zipFile)
用于创建包含给定目录及其所有内容的 ZIP 文件的实用程序方法。 |
static
void
|
createZip(
用于创建包含给定文件的 ZIP 文件的实用程序方法 |
static
File
|
extractFileFromZip(ZipFile zipFile, String filePath)
用于将特定文件从 ZIP 文件解压缩到临时文件的实用程序方法 |
static
void
|
extractZip(ZipFile zipFile, File destDir)
用于将 ZIP 文件的全部内容解压缩到给定目录的实用程序方法 |
static
void
|
extractZip(ZipFile zipFile, File destDir,
用于将 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)
|
公共构造函数
ZipUtil
public ZipUtil ()
公共方法
addToZip
public static void addToZip (ZipOutputStream out,
File file,
relativePathSegs) 递归地将给定文件及其内容添加到 ZipOutputStream
| 参数 | |
|---|---|
out |
ZipOutputStream:ERROR(/ZipOutputStream) |
file |
File:要添加到数据流中的 ERROR(/File) |
relativePathSegs |
:文件的相对路径,包括分隔符 |
| 抛出 | |
|---|---|
|
如果未能将文件添加到 ZIP 文件 |
applyPermission
public static void applyPermission (File targetFile,
CentralDirectoryInfo zipEntry)应用在中央目录条目中配置的文件权限。
| 参数 | |
|---|---|
targetFile |
File:要设置权限的 ERROR(/File)。 |
zipEntry |
CentralDirectoryInfo:包含文件权限的 CentralDirectoryInfo 对象。 |
| 抛出 | |
|---|---|
|
如果无法访问文件。 |
closeZip
public static void closeZip (ZipFile zipFile)
关闭打开的 ERROR(/ZipFile),忽略所有异常。
| 参数 | |
|---|---|
zipFile |
ZipFile:要关闭的文件 |
createZip
public static File createZip (File dir)
用于创建包含给定目录及其所有内容的临时 ZIP 文件的实用程序方法。
| 参数 | |
|---|---|
dir |
File:要压缩的目录 |
| 返回 | |
|---|---|
File |
包含目录内容的临时 ZIP 文件 ERROR(/File) |
| 抛出 | |
|---|---|
|
如果未能创建 ZIP 文件 |
createZip
public static File createZip (files, String name)
用于创建包含给定文件的临时 ZIP 文件的实用程序方法。
| 参数 | |
|---|---|
files |
:要压缩的文件列表 |
name |
String:创建的 ZIP 文件的基准名称(不含扩展名)。 |
| 返回 | |
|---|---|
File |
包含目录内容的临时 ZIP 文件 ERROR(/File) |
| 抛出 | |
|---|---|
|
如果未能创建 ZIP 文件 |
createZip
public static File createZip (File dir,
String name)用于创建包含给定目录及其所有内容的临时 ZIP 文件的实用程序方法。
| 参数 | |
|---|---|
dir |
File:要压缩的目录 |
name |
String:创建的 ZIP 文件的基准名称(不含扩展名)。 |
| 返回 | |
|---|---|
File |
包含目录内容的临时 ZIP 文件 ERROR(/File) |
| 抛出 | |
|---|---|
|
如果未能创建 ZIP 文件 |
createZip
public static File createZip (files)
用于创建包含给定文件的临时 ZIP 文件的实用程序方法
| 参数 | |
|---|---|
files |
:要压缩的文件列表 |
| 返回 | |
|---|---|
File |
包含目录内容的临时 ZIP 文件 ERROR(/File) |
| 抛出 | |
|---|---|
|
如果未能创建 ZIP 文件 |
createZip
public static void createZip (File dir,
File zipFile)用于创建包含给定目录及其所有内容的 ZIP 文件的实用程序方法。
| 参数 | |
|---|---|
dir |
File:要压缩的目录 |
zipFile |
File:要创建的 ZIP 文件 - 该文件不应已存在 |
| 抛出 | |
|---|---|
|
如果未能创建 ZIP 文件 |
createZip
public static void createZip (files, File zipFile)
用于创建包含给定文件的 ZIP 文件的实用程序方法
| 参数 | |
|---|---|
files |
:要压缩的文件列表 |
zipFile |
File:要创建的 ZIP 文件 - 该文件不应已存在 |
| 抛出 | |
|---|---|
|
如果未能创建 ZIP 文件 |
extractFileFromZip
public static File extractFileFromZip (ZipFile zipFile,
String filePath)用于将特定文件从 ZIP 文件解压缩到临时文件的实用程序方法
| 参数 | |
|---|---|
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) |
getZipCentralDirectoryInfos
public staticgetZipCentralDirectoryInfos (File partialZipFile, EndCentralDirectoryInfo endCentralDirInfo, boolean useZip64)
获取 ZIP 文件中文件的 {link CentralDirectoryInfo} 列表。
| 参数 | |
|---|---|
partialZipFile |
File:包含中央目录条目的部分 zip 文件的 ERROR(/File) 对象。 |
endCentralDirInfo |
EndCentralDirectoryInfo:ZIP 文件的 EndCentralDirectoryInfo 对象。 |
useZip64 |
boolean:一个布尔值,用于在部分下载中支持 zip64 格式。 |
| 返回 | |
|---|---|
|
zip 文件的 CentralDirectoryInfo 列表 |
| 抛出 | |
|---|---|
|
IOException |
getZipCentralDirectoryInfos
public staticgetZipCentralDirectoryInfos (File partialZipFile, EndCentralDirectoryInfo endCentralDirInfo, long offset)
获取 ZIP 文件中文件的 {link CentralDirectoryInfo} 列表。
| 参数 | |
|---|---|
partialZipFile |
File:包含中央目录条目的部分 zip 文件的 ERROR(/File) 对象。 |
endCentralDirInfo |
EndCentralDirectoryInfo:ZIP 文件的 EndCentralDirectoryInfo 对象。 |
offset |
long:部分 ZIP 文件中中央目录条目内容的起始偏移量。 |
| 返回 | |
|---|---|
|
zip 文件的 CentralDirectoryInfo 列表 |
| 抛出 | |
|---|---|
|
IOException |
getZipCentralDirectoryInfos
public staticgetZipCentralDirectoryInfos (File partialZipFile, EndCentralDirectoryInfo endCentralDirInfo)
获取 ZIP 文件中文件的 {link CentralDirectoryInfo} 列表。
| 参数 | |
|---|---|
partialZipFile |
File:包含中央目录条目的部分 zip 文件的 ERROR(/File) 对象。 |
endCentralDirInfo |
EndCentralDirectoryInfo:ZIP 文件的 EndCentralDirectoryInfo 对象。 |
| 返回 | |
|---|---|
|
zip 文件的 CentralDirectoryInfo 列表 |
| 抛出 | |
|---|---|
|
IOException |
getZipCentralDirectoryInfos
public staticgetZipCentralDirectoryInfos (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 列表 |
| 抛出 | |
|---|---|
|
IOException |
gzipFile
public static void gzipFile (File file,
File gzipFile)用于创建单个文件的 GZIP 版本的辅助方法。
| 参数 | |
|---|---|
file |
File:原始文件 |
gzipFile |
File:要将压缩内容放入其中的文件 |
| 抛出 | |
|---|---|
|
IOException |
isZipFileValid
public static boolean isZipFileValid (File zipFile,
boolean thorough)用于验证 ZIP 文件是否未损坏的实用程序方法。
| 参数 | |
|---|---|
zipFile |
File:要检查的 ERROR(/File) |
thorough |
boolean:是否尝试完全解压缩归档文件。如果为 false,此方法将无法检测格式正确的归档文件中的 CRC 错误。 |
| 返回 | |
|---|---|
boolean |
如果文件似乎已损坏,则为 false;否则为 true |
| 抛出 | |
|---|---|
|
如果无法打开或读取文件 |
unzipPartialZipFile
public static void unzipPartialZipFile (File partialZip,
File targetFile,
CentralDirectoryInfo zipEntry,
LocalFileHeader localFileHeader,
long startOffset)从部分 ZIP 文件中提取单个请求的文件。
此方法假定在压缩时所有文件都在同一磁盘上。
如果 ERROR(/targetFile) 是目录,则系统会创建一个不含内容的空目录。
如果 ERROR(/targetFile) 是符号链接,系统会创建符号链接,但不会解析。
但尚不支持以下功能:
ZIP 文件大小超过 4GB
ZIP64(需要在压缩大小上更新 ZipLocalFileHeader)
加密的 ZIP 文件
| 参数 | |
|---|---|
partialZip |
File:是 zip 文件的一部分的 ERROR(/File)。 |
targetFile |
File:要将提取的文件保存到的 ERROR(/File)。 |
zipEntry |
CentralDirectoryInfo:要从部分 ZIP 文件中提取的文件的 CentralDirectoryInfo 对象。 |
localFileHeader |
LocalFileHeader:要从部分 ZIP 文件中提取的文件的 LocalFileHeader 对象。 |
startOffset |
long:要提取的文件的起始偏移量。 |
| 抛出 | |
|---|---|
|
IOException |
unzipPartialZipFolder
public static void unzipPartialZipFolder (File targetFile,
CentralDirectoryInfo zipEntry)从部分 ZIP 文件中提取请求的文件夹,并应用适当的权限。
| 参数 | |
|---|---|
targetFile |
File:要将提取的文件保存到的 ERROR(/File)。 |
zipEntry |
CentralDirectoryInfo:要从部分 ZIP 文件中提取的文件的 CentralDirectoryInfo 对象。 |
| 抛出 | |
|---|---|
|
IOException |
受保护的方法
validateDestinationDir
protected static void validateDestinationDir (File destDir,
String filename)| 参数 | |
|---|---|
destDir |
File |
filename |
String |