ZipUtil
public
class
ZipUtil
extends Object
| java.lang.Object
|
| ↳ |
com.android.tradefed.util.ZipUtil
|
Clase auxiliar para operaciones relacionadas con la compresión
Resumen
Métodos públicos |
static
void
|
addToZip(ZipOutputStream out, File file, List<String> relativePathSegs)
Agrega de forma recursiva el archivo determinado y su contenido a ZipOutputStream
|
static
void
|
applyPermission(File targetFile, CentralDirectoryInfo zipEntry)
Aplica el permiso de archivo configurado en la entrada del directorio central.
|
static
void
|
closeZip(ZipFile zipFile)
Cierra un ZipFile abierto, ignorando cualquier excepción.
|
static
File
|
createZip(File dir, String name)
Método de utilidad para crear un archivo ZIP temporal que contenga el directorio determinado y todo su contenido.
|
static
File
|
createZip(File dir)
Método de utilidad para crear un archivo ZIP temporal que contenga el directorio determinado y todo su contenido.
|
static
File
|
createZip(List<File> files)
Método de utilidad para crear un archivo ZIP temporal que contenga los archivos proporcionados
|
static
File
|
createZip(List<File> files, String name)
Método de utilidad para crear un archivo ZIP temporal que contenga los archivos proporcionados.
|
static
void
|
createZip(List<File> files, File zipFile)
Método de utilidad para crear un archivo ZIP que contenga los archivos proporcionados
|
static
void
|
createZip(File dir, File zipFile)
Método de utilidad para crear un archivo ZIP que contenga el directorio determinado y todo su contenido.
|
static
File
|
extractFileFromZip(ZipFile zipFile, String filePath)
Método de utilidad para extraer un archivo específico del archivo zip en un archivo temporal
|
static
void
|
extractZip(ZipFile zipFile, File destDir)
Método de utilidad para extraer todo el contenido del archivo ZIP en el directorio determinado
|
static
void
|
extractZip(ZipFile zipFile, File destDir, Predicate<ZipEntry> shouldExtract)
Método de utilidad para extraer el contenido del archivo zip en el directorio determinado
|
static
File
|
extractZipToTemp(File zipFile, String nameHint)
Extrae un archivo ZIP en un directorio temporal antepuesto con una cadena.
|
static
List<CentralDirectoryInfo>
|
getZipCentralDirectoryInfos(File partialZipFile, EndCentralDirectoryInfo endCentralDirInfo, long offset, boolean useZip64)
Obtiene una lista de {link CentralDirectoryInfo} para los archivos en un archivo ZIP.
|
static
List<CentralDirectoryInfo>
|
getZipCentralDirectoryInfos(File partialZipFile, EndCentralDirectoryInfo endCentralDirInfo)
Obtiene una lista de {link CentralDirectoryInfo} para los archivos en un archivo ZIP.
|
static
List<CentralDirectoryInfo>
|
getZipCentralDirectoryInfos(File partialZipFile, EndCentralDirectoryInfo endCentralDirInfo, boolean useZip64)
Obtiene una lista de {link CentralDirectoryInfo} para los archivos en un archivo ZIP.
|
static
List<CentralDirectoryInfo>
|
getZipCentralDirectoryInfos(File partialZipFile, EndCentralDirectoryInfo endCentralDirInfo, long offset)
Obtiene una lista de {link CentralDirectoryInfo} para los archivos en un archivo ZIP.
|
static
void
|
gzipFile(File file, File gzipFile)
Método auxiliar para crear una versión comprimida con gzip de un solo archivo.
|
static
boolean
|
isZipFileValid(File zipFile, boolean thorough)
Método de utilidad para verificar que un archivo ZIP no esté dañado.
|
static
void
|
unzipPartialZipFile(File partialZip, File targetFile, CentralDirectoryInfo zipEntry, LocalFileHeader localFileHeader, long startOffset)
Extrae un solo archivo solicitado de un archivo ZIP parcial.
|
static
void
|
unzipPartialZipFolder(File targetFile, CentralDirectoryInfo zipEntry)
Extrae la carpeta solicitada de un archivo ZIP parcial y aplica el permiso adecuado.
|
Constructores públicos
ZipUtil
public ZipUtil ()
Métodos públicos
addToZip
public static void addToZip (ZipOutputStream out,
File file,
List<String> relativePathSegs)
Agrega de forma recursiva el archivo determinado y su contenido a ZipOutputStream
| Parámetros |
out |
ZipOutputStream: El ZipOutputStream |
file |
File: Es el File que se agregará al flujo. |
relativePathSegs |
List: Es la ruta de acceso relativa del archivo, incluidos los separadores. |
| Arroja |
IOException |
Si no se pudo agregar el archivo al ZIP |
applyPermission
public static void applyPermission (File targetFile,
CentralDirectoryInfo zipEntry)
Aplica el permiso de archivo configurado en la entrada del directorio central.
| Parámetros |
targetFile |
File: Es el File para el que se establecerá el permiso. |
zipEntry |
CentralDirectoryInfo: Es un objeto CentralDirectoryInfo que contiene los permisos del archivo. |
| Arroja |
IOException |
Si no se puede acceder al archivo |
closeZip
public static void closeZip (ZipFile zipFile)
Cierra un ZipFile abierto, ignorando cualquier excepción.
| Parámetros |
zipFile |
ZipFile: El archivo que se cerrará |
createZip
public static File createZip (File dir,
String name)
Método de utilidad para crear un archivo ZIP temporal que contenga el directorio determinado y todo su contenido.
| Parámetros |
dir |
File: El directorio que se comprimirá |
name |
String: Es el nombre base del archivo ZIP creado sin la extensión. |
| Muestra |
File |
Un archivo zip temporal File que contiene el contenido del directorio |
| Arroja |
IOException |
Si no se pudo crear el archivo ZIP |
createZip
public static File createZip (File dir)
Método de utilidad para crear un archivo ZIP temporal que contenga el directorio determinado y todo su contenido.
| Parámetros |
dir |
File: El directorio que se comprimirá |
| Muestra |
File |
Un archivo zip temporal File que contiene el contenido del directorio |
| Arroja |
IOException |
Si no se pudo crear el archivo ZIP |
createZip
public static File createZip (List<File> files)
Método de utilidad para crear un archivo ZIP temporal que contenga los archivos proporcionados
| Parámetros |
files |
List: Lista de archivos para comprimir |
| Muestra |
File |
Un archivo ZIP temporal File que contiene el contenido del directorio |
| Arroja |
IOException |
Si no se pudo crear el archivo ZIP |
createZip
public static File createZip (List<File> files,
String name)
Método de utilidad para crear un archivo ZIP temporal que contenga los archivos proporcionados.
| Parámetros |
files |
List: Lista de archivos para comprimir |
name |
String: Es el nombre base del archivo ZIP creado sin la extensión. |
| Muestra |
File |
Un archivo zip temporal File que contiene el contenido del directorio |
| Arroja |
IOException |
Si no se pudo crear el archivo ZIP |
createZip
public static void createZip (List<File> files,
File zipFile)
Método de utilidad para crear un archivo ZIP que contenga los archivos proporcionados
| Parámetros |
files |
List: Lista de archivos para comprimir |
zipFile |
File: Es el archivo ZIP que se creará. No debe existir aún. |
| Arroja |
IOException |
Si no se pudo crear el archivo ZIP |
createZip
public static void createZip (File dir,
File zipFile)
Método de utilidad para crear un archivo ZIP que contenga el directorio determinado y todo su contenido.
| Parámetros |
dir |
File: El directorio que se comprimirá |
zipFile |
File: Es el archivo ZIP que se creará. No debe existir aún. |
| Arroja |
IOException |
Si no se pudo crear el archivo ZIP |
public static File extractFileFromZip (ZipFile zipFile,
String filePath)
Método de utilidad para extraer un archivo específico del archivo zip en un archivo temporal
| Parámetros |
zipFile |
ZipFile: El ZipFile que se extraerá |
filePath |
String: Es la ruta de acceso del archivo que se extraerá. |
| Muestra |
File |
File o null si no se encuentra |
| Arroja |
IOException |
Si no se pudo extraer el archivo |
public static void extractZip (ZipFile zipFile,
File destDir)
Método de utilidad para extraer todo el contenido del archivo ZIP en el directorio determinado
| Parámetros |
zipFile |
ZipFile: El ZipFile que se extraerá |
destDir |
File: Es el directorio local en el que se extraerá el archivo. |
| Arroja |
IOException |
Si no se pudo extraer el archivo |
public static void extractZip (ZipFile zipFile,
File destDir,
Predicate<ZipEntry> shouldExtract)
Método de utilidad para extraer el contenido del archivo zip en el directorio determinado
| Parámetros |
zipFile |
ZipFile: El ZipFile que se extraerá |
destDir |
File: Es el directorio local en el que se extraerá el archivo. |
shouldExtract |
Predicate: Predicado para determinar si se debe extraer un ZipEntry |
| Arroja |
IOException |
Si no se pudo extraer el archivo |
public static File extractZipToTemp (File zipFile,
String nameHint)
Extrae un archivo ZIP en un directorio temporal antepuesto con una cadena.
| Parámetros |
zipFile |
File: Es el archivo ZIP que se extraerá. |
nameHint |
String: Es un prefijo para el directorio temporal. |
| Muestra |
File |
Un File que apunta al directorio temporal |
| Arroja |
IOException |
|
ZipException |
|
getZipCentralDirectoryInfos
public static List<CentralDirectoryInfo> getZipCentralDirectoryInfos (File partialZipFile,
EndCentralDirectoryInfo endCentralDirInfo,
long offset,
boolean useZip64)
Obtiene una lista de {link CentralDirectoryInfo} para los archivos en un archivo ZIP.
| Parámetros |
partialZipFile |
File: Es un objeto File del archivo ZIP parcial que contiene entradas de directorio central. |
endCentralDirInfo |
EndCentralDirectoryInfo: Es un objeto EndCentralDirectoryInfo del archivo ZIP. |
offset |
long: Es la compensación en el archivo ZIP parcial en la que comienza el contenido de las entradas del directorio central. |
useZip64 |
boolean: Es un valor booleano para admitir el formato zip64 en la descarga parcial. |
| Arroja |
|
java.io.IOException |
IOException |
|
getZipCentralDirectoryInfos
public static List<CentralDirectoryInfo> getZipCentralDirectoryInfos (File partialZipFile,
EndCentralDirectoryInfo endCentralDirInfo)
Obtiene una lista de {link CentralDirectoryInfo} para los archivos en un archivo ZIP.
| Parámetros |
partialZipFile |
File: Es un objeto File del archivo ZIP parcial que contiene entradas de directorio central. |
endCentralDirInfo |
EndCentralDirectoryInfo: Es un objeto EndCentralDirectoryInfo del archivo ZIP. |
| Arroja |
|
java.io.IOException |
IOException |
|
getZipCentralDirectoryInfos
public static List<CentralDirectoryInfo> getZipCentralDirectoryInfos (File partialZipFile,
EndCentralDirectoryInfo endCentralDirInfo,
boolean useZip64)
Obtiene una lista de {link CentralDirectoryInfo} para los archivos en un archivo ZIP.
| Parámetros |
partialZipFile |
File: Es un objeto File del archivo ZIP parcial que contiene entradas de directorio central. |
endCentralDirInfo |
EndCentralDirectoryInfo: Es un objeto EndCentralDirectoryInfo del archivo ZIP. |
useZip64 |
boolean: Es un valor booleano para admitir el formato zip64 en la descarga parcial. |
| Arroja |
|
java.io.IOException |
IOException |
|
getZipCentralDirectoryInfos
public static List<CentralDirectoryInfo> getZipCentralDirectoryInfos (File partialZipFile,
EndCentralDirectoryInfo endCentralDirInfo,
long offset)
Obtiene una lista de {link CentralDirectoryInfo} para los archivos en un archivo ZIP.
| Parámetros |
partialZipFile |
File: Es un objeto File del archivo ZIP parcial que contiene entradas de directorio central. |
endCentralDirInfo |
EndCentralDirectoryInfo: Es un objeto EndCentralDirectoryInfo del archivo ZIP. |
offset |
long: Es la compensación en el archivo ZIP parcial en la que comienza el contenido de las entradas del directorio central. |
| Arroja |
|
java.io.IOException |
IOException |
|
gzipFile
public static void gzipFile (File file,
File gzipFile)
Método auxiliar para crear una versión comprimida con gzip de un solo archivo.
| Parámetros |
file |
File: El archivo original |
gzipFile |
File: El archivo en el que se colocará el contenido comprimido |
| Arroja |
|
java.io.IOException |
IOException |
|
isZipFileValid
public static boolean isZipFileValid (File zipFile,
boolean thorough)
Método de utilidad para verificar que un archivo ZIP no esté dañado.
| Parámetros |
zipFile |
File: El File que se debe verificar |
thorough |
boolean: Indica si se debe intentar extraer el archivo por completo. Si es false, este método no detectará errores de CRC en un archivo bien formado. |
| Muestra |
boolean |
false si el archivo parece estar dañado; de lo contrario, true |
| Arroja |
IOException |
Si no se pudo abrir o leer el archivo |
unzipPartialZipFile
public static void unzipPartialZipFile (File partialZip,
File targetFile,
CentralDirectoryInfo zipEntry,
LocalFileHeader localFileHeader,
long startOffset)
Extrae un solo archivo solicitado de un archivo ZIP parcial.
Este método supone que todos los archivos están en el mismo disco cuando se comprimen.
Si ERROR(/targetFile) es un directorio, se creará un directorio vacío sin su contenido.
Si ERROR(/targetFile) es un vínculo simbólico, se creará un vínculo simbólico, pero no se resolverá.
Aún no admite las siguientes funciones:
El archivo ZIP es más grande que 4 GB
ZIP64(requiere la actualización de ZipLocalFileHeader en el tamaño comprimido)
Archivo ZIP encriptado
| Parámetros |
partialZip |
File: Es un File que es una parte del archivo ZIP. |
targetFile |
File: Es el File en el que se guardará el archivo extraído. |
zipEntry |
CentralDirectoryInfo: Es un objeto CentralDirectoryInfo del archivo que se extraerá del archivo ZIP parcial. |
localFileHeader |
LocalFileHeader: Es un objeto LocalFileHeader del archivo que se extraerá del archivo ZIP parcial. |
startOffset |
long: Es el desplazamiento de inicio del archivo que se extraerá. |
| Arroja |
|
java.io.IOException |
IOException |
|
unzipPartialZipFolder
public static void unzipPartialZipFolder (File targetFile,
CentralDirectoryInfo zipEntry)
Extrae la carpeta solicitada de un archivo ZIP parcial y aplica el permiso adecuado.
| Parámetros |
targetFile |
File: Es el File en el que se guardará el archivo extraído. |
zipEntry |
CentralDirectoryInfo: Es un objeto CentralDirectoryInfo del archivo que se extraerá del archivo ZIP parcial. |
| Arroja |
|
java.io.IOException |
IOException |
|
Métodos protegidos
validateDestinationDir
protected static void validateDestinationDir (File destDir,
String filename)
| Parámetros |
destDir |
File |
filename |
String |