ZipUtil

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 ファイルから特定の 1 つのファイルを 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)

1 つのファイルの gzip 圧縮バージョンを作成するヘルパー メソッド。

static boolean isZipFileValid(File zipFile, boolean thorough)

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

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

部分 ZIP ファイルからリクエストされた 1 つのファイルを抽出します。

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: ZIP 圧縮するディレクトリ

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

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

createZip

public static File createZip ( files, 
                String name)

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

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

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

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

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

createZip

public static File createZip (File dir, 
                String name)

指定したディレクトリとそのすべての内容を含む一時 ZIP ファイルを作成するユーティリティ メソッド。

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

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

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

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

createZip

public static File createZip ( files)

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

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

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

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

createZip

public static void createZip (File dir, 
                File zipFile)

指定したディレクトリとそのすべての内容を含む ZIP ファイルを作成するユーティリティ メソッド。

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

zipFile File: 作成する ZIP ファイル - すでに存在しない必要があります

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

createZip

public static void createZip ( files, 
                File zipFile)

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

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

zipFile File: 作成する ZIP ファイル - すでに存在しない必要があります

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

extractFileFromZip

public static File extractFileFromZip (ZipFile zipFile, 
                String filePath)

zip ファイルから特定の 1 つのファイルを 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)

getZipCentralDirectoryInfos

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

getZipCentralDirectoryInfos

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

getZipCentralDirectoryInfos

public static  getZipCentralDirectoryInfos (File partialZipFile, 
                EndCentralDirectoryInfo endCentralDirInfo)

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

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

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

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

例外
IOException

getZipCentralDirectoryInfos

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

gzipFile

public static void gzipFile (File file, 
                File gzipFile)

1 つのファイルの 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 ファイルからリクエストされた 1 つのファイルを抽出します。

この方法では、圧縮時にすべてのファイルが同じディスク上にあることを前提としています。

ERROR(/targetFile) がディレクトリの場合、空のディレクトリが作成され、内容は含まれません。

ERROR(/targetFile) がシンボリック リンクの場合、シンボリック リンクは作成されますが、解決されません。

次の機能はまだサポートされていません。

4 GB を超える ZIP ファイル

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