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)

単一ファイルの 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 オブジェクト。

例外
制限されます。

Close Zip

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 : zip 圧縮するファイルのリスト

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 : zip 圧縮するファイルのリスト

戻り値
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 : zip 圧縮するファイルのリスト

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

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

extractFileFromZip

public static File extractFileFromZip (ZipFile zipFile, 
                String filePath)

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

パラメータ
zipFile ZipFile: 抽出する ERROR(/ZipFile)

filePath String: 抽出する filePath

戻り値
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

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

例外
ファイルを開けない場合や読み取りができなかった場合

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 ファイルの一部である 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