ZipUtil

public class ZipUtil
extends Object

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


Clase auxiliar para operaciones relacionadas con la compresión

Resumen

Constructores públicos

ZipUtil()

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.

Métodos protegidos

static void validateDestinationDir(File destDir, String filename)

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

extractFileFromZip

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

extractZip

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

extractZip

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

extractZipToTemp

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.

Muestra
List<CentralDirectoryInfo> Es una lista de CentralDirectoryInfo del archivo ZIP.

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.

Muestra
List<CentralDirectoryInfo> Es una lista de CentralDirectoryInfo 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.

Muestra
List<CentralDirectoryInfo> Es una lista de CentralDirectoryInfo del archivo ZIP.

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.

Muestra
List<CentralDirectoryInfo> Es una lista de CentralDirectoryInfo del archivo ZIP.

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

Arroja
IOException