壓縮工具

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