ZipUtil

public class ZipUtil
extends Object

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


圧縮関連のオペレーション用のヘルパークラス

概要

パブリック コンストラクタ

ZipUtil()

パブリック メソッド

static void addToZip(ZipOutputStream out, File file, List<String> relativePathSegs)

指定されたファイルとそのコンテンツを ZipOutputStream に再帰的に追加します。

static void applyPermission(File targetFile, CentralDirectoryInfo zipEntry)

中央ディレクトリ エントリで構成されたファイル権限を適用します。

static void closeZip(ZipFile zipFile)

例外を無視して、開いている ZipFile を閉じます。

static File createZip(File dir, String name)

指定されたディレクトリとそのすべてのコンテンツを含む一時的な zip ファイルを作成するユーティリティ メソッド。

static File createZip(File dir)

指定されたディレクトリとそのすべてのコンテンツを含む一時的な zip ファイルを作成するユーティリティ メソッド。

static File createZip(List<File> files)

指定されたファイルを含む一時的な zip ファイルを作成するユーティリティ メソッド

static File createZip(List<File> files, String name)

指定されたファイルを含む一時的な zip ファイルを作成するユーティリティ メソッド。

static void createZip(List<File> files, File zipFile)

指定されたファイルを含む zip ファイルを作成するユーティリティ メソッド

static void createZip(File dir, File zipFile)

指定されたディレクトリとそのすべてのコンテンツを含む zip ファイルを作成するユーティリティ メソッド。

static File extractFileFromZip(ZipFile zipFile, String filePath)

zip ファイルから特定のファイルを一時ファイルに抽出するユーティリティ メソッド

static void extractZip(ZipFile zipFile, File destDir)

zip ファイルの内容全体を指定されたディレクトリに抽出するユーティリティ メソッド

static void extractZip(ZipFile zipFile, File destDir, Predicate<ZipEntry> shouldExtract)

zip ファイルの内容を指定されたディレクトリに抽出するユーティリティ メソッド

static File extractZipToTemp(File zipFile, String nameHint)

文字列が先頭に付加された一時ディレクトリに zip ファイルを抽出する

static List<CentralDirectoryInfo> getZipCentralDirectoryInfos(File partialZipFile, EndCentralDirectoryInfo endCentralDirInfo, long offset, boolean useZip64)

zip ファイル内のファイルの {link CentralDirectoryInfo} のリストを取得します。

static List<CentralDirectoryInfo> getZipCentralDirectoryInfos(File partialZipFile, EndCentralDirectoryInfo endCentralDirInfo)

zip ファイル内のファイルの {link CentralDirectoryInfo} のリストを取得します。

static List<CentralDirectoryInfo> getZipCentralDirectoryInfos(File partialZipFile, EndCentralDirectoryInfo endCentralDirInfo, boolean useZip64)

zip ファイル内のファイルの {link CentralDirectoryInfo} のリストを取得します。

static List<CentralDirectoryInfo> getZipCentralDirectoryInfos(File partialZipFile, EndCentralDirectoryInfo endCentralDirInfo, long offset)

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, 
                List<String> relativePathSegs)

指定されたファイルとそのコンテンツを ZipOutputStream に再帰的に追加します

パラメータ
out ZipOutputStream: ZipOutputStream

file File: ストリームに追加する File

relativePathSegs List: ファイルの相対パス(区切り文字を含む)

例外
IOException zip にファイルを追加できなかった場合

applyPermission

public static void applyPermission (File targetFile, 
                CentralDirectoryInfo zipEntry)

中央ディレクトリ エントリで構成されたファイル権限を適用します。

パラメータ
targetFile File: 権限を設定する File

zipEntry CentralDirectoryInfo: ファイル権限を含む CentralDirectoryInfo オブジェクト。

例外
IOException ファイルにアクセスできなかった場合。

closeZip

public static void closeZip (ZipFile zipFile)

例外を無視して、開いている ZipFile を閉じます。

パラメータ
zipFile ZipFile: 閉じるファイル

createZip

public static File createZip (File dir, 
                String name)

指定されたディレクトリとそのすべてのコンテンツを含む一時的な zip ファイルを作成するユーティリティ メソッド。

パラメータ
dir File: 圧縮するディレクトリ

name String: 拡張子なしで作成された zip ファイルのベース名。

戻り値
File ディレクトリの内容を含む一時的な zip File

例外
IOException zip ファイルの作成に失敗した場合

createZip

public static File createZip (File dir)

指定されたディレクトリとそのすべてのコンテンツを含む一時的な zip ファイルを作成するユーティリティ メソッド。

パラメータ
dir File: 圧縮するディレクトリ

戻り値
File ディレクトリの内容を含む一時的な zip File

例外
IOException zip ファイルの作成に失敗した場合

createZip

public static File createZip (List<File> files)

指定されたファイルを含む一時的な zip ファイルを作成するユーティリティ メソッド

パラメータ
files List: 圧縮するファイルのリスト

戻り値
File ディレクトリの内容を含む一時的な zip File

例外
IOException zip ファイルの作成に失敗した場合

createZip

public static File createZip (List<File> files, 
                String name)

指定されたファイルを含む一時的な zip ファイルを作成するユーティリティ メソッド。

パラメータ
files List: 圧縮するファイルのリスト

name String: 拡張子なしで作成された zip ファイルのベース名。

戻り値
File ディレクトリの内容を含む一時的な zip File

例外
IOException zip ファイルの作成に失敗した場合

createZip

public static void createZip (List<File> files, 
                File zipFile)

指定されたファイルを含む zip ファイルを作成するユーティリティ メソッド

パラメータ
files List: 圧縮するファイルのリスト

zipFile File: 作成する zip ファイル - まだ存在していない必要があります

例外
IOException zip ファイルの作成に失敗した場合

createZip

public static void createZip (File dir, 
                File zipFile)

指定されたディレクトリとそのすべてのコンテンツを含む zip ファイルを作成するユーティリティ メソッド。

パラメータ
dir File: 圧縮するディレクトリ

zipFile File: 作成する zip ファイル - まだ存在していない必要があります

例外
IOException zip ファイルの作成に失敗した場合

extractFileFromZip

public static File extractFileFromZip (ZipFile zipFile, 
                String filePath)

zip ファイルから特定のファイルを一時ファイルに抽出するユーティリティ メソッド

パラメータ
zipFile ZipFile: 抽出する ZipFile

filePath String: 抽出する filePath

戻り値
File File。見つからない場合は null

例外
IOException ファイルを抽出できなかった場合

extractZip

public static void extractZip (ZipFile zipFile, 
                File destDir)

zip ファイルの内容全体を指定されたディレクトリに抽出するユーティリティ メソッド

パラメータ
zipFile ZipFile: 抽出する ZipFile

destDir File: ファイルの抽出先のローカル ディレクトリ

例外
IOException ファイルを抽出できなかった場合

extractZip

public static void extractZip (ZipFile zipFile, 
                File destDir, 
                Predicate<ZipEntry> shouldExtract)

zip ファイルの内容を指定されたディレクトリに抽出するユーティリティ メソッド

パラメータ
zipFile ZipFile: 抽出する ZipFile

destDir File: ファイルの抽出先のローカル ディレクトリ

shouldExtract Predicate: ZipEntry を抽出するかどうかを判断する述語

例外
IOException ファイルを抽出できなかった場合

extractZipToTemp

public static File extractZipToTemp (File zipFile, 
                String nameHint)

文字列が先頭に付加された一時ディレクトリに zip ファイルを抽出する

パラメータ
zipFile File: 解凍する zip ファイル

nameHint String: 一時ディレクトリの接頭辞

戻り値
File 一時ディレクトリを指す File

例外
IOException
ZipException

getZipCentralDirectoryInfos

public static List<CentralDirectoryInfo> getZipCentralDirectoryInfos (File partialZipFile, 
                EndCentralDirectoryInfo endCentralDirInfo, 
                long offset, 
                boolean useZip64)

zip ファイル内のファイルの {link CentralDirectoryInfo} のリストを取得します。

パラメータ
partialZipFile File: 中央ディレクトリ エントリを含む部分的な zip ファイルの File オブジェクト。

endCentralDirInfo EndCentralDirectoryInfo: zip ファイルの EndCentralDirectoryInfo オブジェクト。

offset long: 中央ディレクトリ エントリの内容が始まる部分 zip ファイル内のオフセット。

useZip64 boolean: 部分ダウンロードで zip64 形式をサポートするブール値。

戻り値
List<CentralDirectoryInfo> zip ファイルの CentralDirectoryInfo のリスト

例外
java.io.IOException
IOException

getZipCentralDirectoryInfos

public static List<CentralDirectoryInfo> getZipCentralDirectoryInfos (File partialZipFile, 
                EndCentralDirectoryInfo endCentralDirInfo)

zip ファイル内のファイルの {link CentralDirectoryInfo} のリストを取得します。

パラメータ
partialZipFile File: 中央ディレクトリ エントリを含む部分的な zip ファイルの File オブジェクト。

endCentralDirInfo EndCentralDirectoryInfo: zip ファイルの EndCentralDirectoryInfo オブジェクト。

戻り値
List<CentralDirectoryInfo> zip ファイルの CentralDirectoryInfo のリスト

例外
java.io.IOException
IOException

getZipCentralDirectoryInfos

public static List<CentralDirectoryInfo> getZipCentralDirectoryInfos (File partialZipFile, 
                EndCentralDirectoryInfo endCentralDirInfo, 
                boolean useZip64)

zip ファイル内のファイルの {link CentralDirectoryInfo} のリストを取得します。

パラメータ
partialZipFile File: 中央ディレクトリ エントリを含む部分的な zip ファイルの File オブジェクト。

endCentralDirInfo EndCentralDirectoryInfo: zip ファイルの EndCentralDirectoryInfo オブジェクト。

useZip64 boolean: 部分ダウンロードで zip64 形式をサポートするブール値。

戻り値
List<CentralDirectoryInfo> zip ファイルの CentralDirectoryInfo のリスト

例外
java.io.IOException
IOException

getZipCentralDirectoryInfos

public static List<CentralDirectoryInfo> getZipCentralDirectoryInfos (File partialZipFile, 
                EndCentralDirectoryInfo endCentralDirInfo, 
                long offset)

zip ファイル内のファイルの {link CentralDirectoryInfo} のリストを取得します。

パラメータ
partialZipFile File: 中央ディレクトリ エントリを含む部分的な zip ファイルの File オブジェクト。

endCentralDirInfo EndCentralDirectoryInfo: zip ファイルの EndCentralDirectoryInfo オブジェクト。

offset long: 中央ディレクトリ エントリの内容が始まる部分 zip ファイル内のオフセット。

戻り値
List<CentralDirectoryInfo> zip ファイルの CentralDirectoryInfo のリスト

例外
java.io.IOException
IOException

gzipFile

public static void gzipFile (File file, 
                File gzipFile)

単一ファイルの gzip 圧縮版を作成するヘルパー メソッド。

パラメータ
file File: 元のファイル

gzipFile File: 圧縮されたコンテンツを配置するファイル

例外
java.io.IOException
IOException

isZipFileValid

public static boolean isZipFileValid (File zipFile, 
                boolean thorough)

zip ファイルが破損していないことを確認するユーティリティ メソッド。

パラメータ
zipFile File: 確認する File

thorough boolean: アーカイブを完全に抽出するかどうか。false の場合、このメソッドは整形式のアーカイブ内の CRC エラーを検出できません。

戻り値
boolean ファイルが破損していると思われる場合は false。それ以外の場合は true

例外
IOException ファイルを開くか読み取ることができなかった場合

unzipPartialZipFile

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 ファイルの部分的な File

targetFile File: 抽出したファイルの保存先となる File

zipEntry CentralDirectoryInfo: 部分的な zip ファイルから抽出するファイルの CentralDirectoryInfo オブジェクト。

localFileHeader LocalFileHeader: 部分的な zip ファイルから抽出するファイルの LocalFileHeader オブジェクト。

startOffset long: 抽出するファイルの開始オフセット。

例外
java.io.IOException
IOException

unzipPartialZipFolder

public static void unzipPartialZipFolder (File targetFile, 
                CentralDirectoryInfo zipEntry)

部分的な zip ファイルからリクエストされたフォルダを抽出し、適切な権限を適用します。

パラメータ
targetFile File: 抽出したファイルの保存先となる File

zipEntry CentralDirectoryInfo: 部分的な zip ファイルから抽出するファイルの CentralDirectoryInfo オブジェクト。

例外
java.io.IOException
IOException

保護されたメソッド

validateDestinationDir

protected static void validateDestinationDir (File destDir, 
                String filename)

パラメータ
destDir File

filename String

例外
IOException