拉鍊

public class ZipUtil
extends Object

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


壓縮相關作業的輔助類別

摘要

公用建構函式

ZipUtil()

公用方法

static void 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)

建立包含指定檔案的暫存 ZIP 檔案的公用程式方法。

static File createZip(File dir, String name)

這個公用程式方法可以建立包含指定目錄的暫存 ZIP 檔案 所有內容

static File createZip( files)

建立包含指定檔案的暫存 ZIP 檔案的公用程式方法

static void createZip(File dir, File zipFile)

這個公用程式方法可以建立包含指定目錄的 ZIP 檔案 所有內容

static void 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)

可將 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 ()

公用方法

addToZip

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 物件。

擲回
無法存取檔案。

關閉郵遞區號

public static void closeZip (ZipFile zipFile)

關閉已開啟的 ERROR(/ZipFile),忽略所有例外狀況。

參數
zipFile ZipFile:要關閉的檔案

建立壓縮檔

public static File createZip (File dir)

這個公用程式方法可以建立包含指定目錄的暫存 ZIP 檔案 所有內容

參數
dir File:要壓縮的目錄

傳回
File 包含目錄內容的臨時 ZIP ERROR(/File)

擲回
如果無法建立 ZIP 檔案

建立壓縮檔

public static File createZip ( files, 
                String name)

建立包含指定檔案的暫存 ZIP 檔案的公用程式方法。

參數
files :要壓縮的檔案清單

name String:沒有副檔名的 ZIP 檔案基礎名稱。

傳回
File 包含目錄內容的臨時 ZIP ERROR(/File)

擲回
如果無法建立 ZIP 檔案

建立壓縮檔

public static File createZip (File dir, 
                String name)

這個公用程式方法可以建立包含指定目錄的暫存 ZIP 檔案 所有內容

參數
dir File:要壓縮的目錄

name String:沒有副檔名的 ZIP 檔案基礎名稱。

傳回
File 包含目錄內容的臨時 ZIP ERROR(/File)

擲回
如果無法建立 ZIP 檔案

建立壓縮檔

public static File createZip ( files)

建立包含指定檔案的暫存 ZIP 檔案的公用程式方法

參數
files :要壓縮的檔案清單

傳回
File 包含目錄內容的臨時 ZIP ERROR(/File)

擲回
如果無法建立 ZIP 檔案

建立壓縮檔

public static void createZip (File dir, 
                File zipFile)

這個公用程式方法可以建立包含指定目錄的 ZIP 檔案 所有內容

參數
dir File:要壓縮的目錄

zipFile File:要建立的 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);如果找不到,則為空值

擲回
如果無法擷取檔案

擷取 Zip

public static void extractZip (ZipFile zipFile, 
                File destDir)

可將 ZIP 檔案的完整內容擷取至指定目錄的公用程式方法

參數
zipFile ZipFile:要擷取的 ERROR(/ZipFile)

destDir File:要擷取檔案的本機目錄

擲回
如果無法擷取檔案

擷取 Zip

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

可將 ZIP 檔案內容擷取至指定目錄的公用程式方法

參數
zipFile ZipFile:要擷取的 ERROR(/ZipFile)

destDir File:要擷取檔案的本機目錄

shouldExtract :是否應擷取 ZipEntry 的述詞

擲回
如果無法擷取檔案

擷取 ZipToTemp

public static File extractZipToTemp (File zipFile, 
                String nameHint)

將 ZIP 檔案解壓縮到前面加上字串的暫存目錄

參數
zipFile File:要擷取的 ZIP 檔案

nameHint String:臨時目錄的前置字串

傳回
File 指向臨時目錄的 ERROR(/File)

取得 ZipCentralDirectoryInfo

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 清單

擲回
IOException

取得 ZipCentralDirectoryInfo

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 清單

擲回
IOException

取得 ZipCentralDirectoryInfo

public static  getZipCentralDirectoryInfos (File partialZipFile, 
                EndCentralDirectoryInfo endCentralDirInfo)

取得一份 ZIP 檔案所含檔案的 {link CentralDirectoryInfo} 清單。

參數
partialZipFile File:部分 ZIP 檔案中的 ERROR(/File) 物件,包含中央值 目錄項目。

endCentralDirInfo EndCentralDirectoryInfo:ZIP 檔案的 EndCentralDirectoryInfo 物件。

傳回
ZIP 檔案的 CentralDirectoryInfo 清單

擲回
IOException

取得 ZipCentralDirectoryInfo

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 清單

擲回
IOException

gzip 檔案

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

擲回
無法開啟或讀取檔案

解壓縮部分 ZIPFile

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

從部分 ZIP 檔案中擷取單一要求的檔案。

這個方法會假設所有檔案在壓縮時都位於同一個磁碟上。

如果 ERROR(/targetFile) 是目錄,則會建立沒有目錄的空白目錄 內容。

如果 ERROR(/targetFile) 是符號連結,則系統會建立符號連結,但不會解析。

目前尚不支援下列功能:

超過 4 GB 的 ZIP 檔案

ZIP64(需要更新壓縮大小的 ZipLocalFileHeader)

加密 ZIP 檔案

參數
partialZip File:這是 ZIP 檔案的一部分 ERROR(/File)

targetFile File:用於儲存擷取檔案的 ERROR(/File)

zipEntry CentralDirectoryInfo:要從部分擷取的檔案的 CentralDirectoryInfo 物件 ZIP 檔案,

localFileHeader LocalFileHeader:要從LocalFileHeader 不完整的 ZIP 檔案,

startOffset long:要擷取的檔案開始偏移。

擲回
IOException

解壓縮部分 ZipFolder

public static void unzipPartialZipFolder (File targetFile, 
                CentralDirectoryInfo zipEntry)

從部分 ZIP 檔案中擷取要求的資料夾,並套用適當權限。

參數
targetFile File:用於儲存擷取檔案的 ERROR(/File)

zipEntry CentralDirectoryInfo:要從部分擷取的檔案的 CentralDirectoryInfo 物件 ZIP 檔案,

擲回
IOException

保護方法

VerifyDestinationDir

protected static void validateDestinationDir (File destDir, 
                String filename)

參數
destDir File

filename String