ZipUtil
public
class
ZipUtil
extends Object
java.lang.Object
|
↳ |
com.android.tradefed.util.ZipUtil
|
A helper class for compression-related operations
Summary
Public methods |
static
void
|
addToZip(ZipOutputStream out, File file, relativePathSegs)
Recursively adds given file and its contents to ZipOutputStream
|
static
void
|
applyPermission(File targetFile, CentralDirectoryInfo zipEntry)
Apply the file permission configured in the central directory entry.
|
static
void
|
closeZip(ZipFile zipFile)
Close an open ERROR(/ZipFile) , ignoring any exceptions.
|
static
File
|
createZip(File dir)
Utility method to create a temporary zip file containing the given directory and
all its contents.
|
static
File
|
createZip( files, String name)
Utility method to create a temporary zip file containing the given files.
|
static
File
|
createZip(File dir, String name)
Utility method to create a temporary zip file containing the given directory and
all its contents.
|
static
File
|
createZip( files)
Utility method to create a temporary zip file containing the given files
|
static
void
|
createZip(File dir, File zipFile)
Utility method to create a zip file containing the given directory and
all its contents.
|
static
void
|
createZip( files, File zipFile)
Utility method to create a zip file containing the given files
|
static
File
|
extractFileFromZip(ZipFile zipFile, String filePath)
Utility method to extract one specific file from zip file into a tmp file
|
static
void
|
extractZip(ZipFile zipFile, File destDir)
Utility method to extract entire contents of zip file into given directory
|
static
void
|
extractZip(ZipFile zipFile, File destDir, shouldExtract)
Utility method to extract contents of zip file into given directory
|
static
File
|
extractZipToTemp(File zipFile, String nameHint)
Extract a zip file to a temp directory prepended with a string
|
static
|
getZipCentralDirectoryInfos(File partialZipFile, EndCentralDirectoryInfo endCentralDirInfo, boolean useZip64)
Get a list of {link CentralDirectoryInfo} for files in a zip file.
|
static
|
getZipCentralDirectoryInfos(File partialZipFile, EndCentralDirectoryInfo endCentralDirInfo, long offset)
Get a list of {link CentralDirectoryInfo} for files in a zip file.
|
static
|
getZipCentralDirectoryInfos(File partialZipFile, EndCentralDirectoryInfo endCentralDirInfo)
Get a list of {link CentralDirectoryInfo} for files in a zip file.
|
static
|
getZipCentralDirectoryInfos(File partialZipFile, EndCentralDirectoryInfo endCentralDirInfo, long offset, boolean useZip64)
Get a list of {link CentralDirectoryInfo} for files in a zip file.
|
static
void
|
gzipFile(File file, File gzipFile)
Helper method to create a gzipped version of a single file.
|
static
boolean
|
isZipFileValid(File zipFile, boolean thorough)
Utility method to verify that a zip file is not corrupt.
|
static
void
|
unzipPartialZipFile(File partialZip, File targetFile, CentralDirectoryInfo zipEntry, LocalFileHeader localFileHeader, long startOffset)
Extract a single requested file from a partial zip file.
|
static
void
|
unzipPartialZipFolder(File targetFile, CentralDirectoryInfo zipEntry)
Extract the requested folder from a partial zip file and apply proper permission.
|
Public constructors
ZipUtil
public ZipUtil ()
Public methods
addToZip
public static void addToZip (ZipOutputStream out,
File file,
relativePathSegs)
Recursively adds given file and its contents to ZipOutputStream
Parameters |
out |
ZipOutputStream : the ERROR(/ZipOutputStream) |
file |
File : the ERROR(/File) to add to the stream |
relativePathSegs |
: the relative path of file, including separators |
Throws |
|
if failed to add file to zip |
applyPermission
public static void applyPermission (File targetFile,
CentralDirectoryInfo zipEntry)
Apply the file permission configured in the central directory entry.
Parameters |
targetFile |
File : the ERROR(/File) to set permission to. |
zipEntry |
CentralDirectoryInfo : a CentralDirectoryInfo object that contains the file permissions. |
Throws |
|
if fail to access the file. |
closeZip
public static void closeZip (ZipFile zipFile)
Close an open ERROR(/ZipFile)
, ignoring any exceptions.
Parameters |
zipFile |
ZipFile : the file to close |
createZip
public static File createZip (File dir)
Utility method to create a temporary zip file containing the given directory and
all its contents.
Parameters |
dir |
File : the directory to zip |
Returns |
File |
a temporary zip ERROR(/File) containing directory contents |
Throws |
|
if failed to create zip file |
createZip
public static File createZip ( files,
String name)
Utility method to create a temporary zip file containing the given files.
Parameters |
files |
: list of files to zip |
name |
String : the base name of the zip file created without the extension. |
Returns |
File |
a temporary zip ERROR(/File) containing directory contents |
Throws |
|
if failed to create zip file |
createZip
public static File createZip (File dir,
String name)
Utility method to create a temporary zip file containing the given directory and
all its contents.
Parameters |
dir |
File : the directory to zip |
name |
String : the base name of the zip file created without the extension. |
Returns |
File |
a temporary zip ERROR(/File) containing directory contents |
Throws |
|
if failed to create zip file |
createZip
public static File createZip ( files)
Utility method to create a temporary zip file containing the given files
Parameters |
files |
: list of files to zip |
Returns |
File |
a temporary zip ERROR(/File) containing directory contents |
Throws |
|
if failed to create zip file |
createZip
public static void createZip (File dir,
File zipFile)
Utility method to create a zip file containing the given directory and
all its contents.
Parameters |
dir |
File : the directory to zip |
zipFile |
File : the zip file to create - it should not already exist |
Throws |
|
if failed to create zip file |
createZip
public static void createZip ( files,
File zipFile)
Utility method to create a zip file containing the given files
Parameters |
files |
: list of files to zip |
zipFile |
File : the zip file to create - it should not already exist |
Throws |
|
if failed to create zip file |
public static File extractFileFromZip (ZipFile zipFile,
String filePath)
Utility method to extract one specific file from zip file into a tmp file
Parameters |
zipFile |
ZipFile : the ERROR(/ZipFile) to extract |
filePath |
String : the filePath of to extract |
Throws |
|
if failed to extract file |
public static void extractZip (ZipFile zipFile,
File destDir)
Utility method to extract entire contents of zip file into given directory
Parameters |
zipFile |
ZipFile : the ERROR(/ZipFile) to extract |
destDir |
File : the local dir to extract file to |
Throws |
|
if failed to extract file |
public static void extractZip (ZipFile zipFile,
File destDir,
shouldExtract)
Utility method to extract contents of zip file into given directory
Parameters |
zipFile |
ZipFile : the ERROR(/ZipFile) to extract |
destDir |
File : the local dir to extract file to |
shouldExtract |
: the predicate to dermine if an ZipEntry should be extracted |
Throws |
|
if failed to extract file |
public static File extractZipToTemp (File zipFile,
String nameHint)
Extract a zip file to a temp directory prepended with a string
Parameters |
zipFile |
File : the zip file to extract |
nameHint |
String : a prefix for the temp directory |
getZipCentralDirectoryInfos
public static getZipCentralDirectoryInfos (File partialZipFile,
EndCentralDirectoryInfo endCentralDirInfo,
boolean useZip64)
Get a list of {link CentralDirectoryInfo} for files in a zip file.
Parameters |
partialZipFile |
File : a ERROR(/File) object of the partial zip file that contains central
directory entries. |
endCentralDirInfo |
EndCentralDirectoryInfo : a EndCentralDirectoryInfo object of the zip file. |
useZip64 |
boolean : a boolean to support zip64 format in partial download. |
getZipCentralDirectoryInfos
public static getZipCentralDirectoryInfos (File partialZipFile,
EndCentralDirectoryInfo endCentralDirInfo,
long offset)
Get a list of {link CentralDirectoryInfo} for files in a zip file.
Parameters |
partialZipFile |
File : a ERROR(/File) object of the partial zip file that contains central
directory entries. |
endCentralDirInfo |
EndCentralDirectoryInfo : a EndCentralDirectoryInfo object of the zip file. |
offset |
long : the offset in the partial zip file where the content of central directory
entries starts. |
getZipCentralDirectoryInfos
public static getZipCentralDirectoryInfos (File partialZipFile,
EndCentralDirectoryInfo endCentralDirInfo)
Get a list of {link CentralDirectoryInfo} for files in a zip file.
Parameters |
partialZipFile |
File : a ERROR(/File) object of the partial zip file that contains central
directory entries. |
endCentralDirInfo |
EndCentralDirectoryInfo : a EndCentralDirectoryInfo object of the zip file. |
getZipCentralDirectoryInfos
public static getZipCentralDirectoryInfos (File partialZipFile,
EndCentralDirectoryInfo endCentralDirInfo,
long offset,
boolean useZip64)
Get a list of {link CentralDirectoryInfo} for files in a zip file.
Parameters |
partialZipFile |
File : a ERROR(/File) object of the partial zip file that contains central
directory entries. |
endCentralDirInfo |
EndCentralDirectoryInfo : a EndCentralDirectoryInfo object of the zip file. |
offset |
long : the offset in the partial zip file where the content of central directory
entries starts. |
useZip64 |
boolean : a boolean to support zip64 format in partial download. |
gzipFile
public static void gzipFile (File file,
File gzipFile)
Helper method to create a gzipped version of a single file.
Parameters |
file |
File : the original file |
gzipFile |
File : the file to place compressed contents in |
isZipFileValid
public static boolean isZipFileValid (File zipFile,
boolean thorough)
Utility method to verify that a zip file is not corrupt.
Parameters |
zipFile |
File : the ERROR(/File) to check |
thorough |
boolean : Whether to attempt to fully extract the archive. If false , this
method will fail to detect CRC errors in a well-formed archive. |
Returns |
boolean |
false if the file appears to be corrupt; true otherwise |
Throws |
|
if the file could not be opened or read |
unzipPartialZipFile
public static void unzipPartialZipFile (File partialZip,
File targetFile,
CentralDirectoryInfo zipEntry,
LocalFileHeader localFileHeader,
long startOffset)
Extract a single requested file from a partial zip file.
This method assumes all files are on the same disk when compressed.
If ERROR(/targetFile)
is a directory, an empty directory will be created without its
contents.
If ERROR(/targetFile)
is a symlink, a symlink will be created but not resolved.
It doesn't support following features yet:
Zip file larger than 4GB
ZIP64(require ZipLocalFileHeader update on compressed size)
Encrypted zip file
Parameters |
partialZip |
File : a ERROR(/File) that's a partial of the zip file. |
targetFile |
File : the ERROR(/File) to save the extracted file to. |
zipEntry |
CentralDirectoryInfo : a CentralDirectoryInfo object of the file to extract from the partial
zip file. |
localFileHeader |
LocalFileHeader : a LocalFileHeader object of the file to extract from the
partial zip file. |
startOffset |
long : start offset of the file to extract. |
unzipPartialZipFolder
public static void unzipPartialZipFolder (File targetFile,
CentralDirectoryInfo zipEntry)
Extract the requested folder from a partial zip file and apply proper permission.
Parameters |
targetFile |
File : the ERROR(/File) to save the extracted file to. |
zipEntry |
CentralDirectoryInfo : a CentralDirectoryInfo object of the file to extract from the partial
zip file. |
Protected methods
validateDestinationDir
protected static void validateDestinationDir (File destDir,
String filename)
Parameters |
destDir |
File |
filename |
String |