ZipUtil

public class ZipUtil
extends Object

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


Uma classe auxiliar para operações relacionadas à compactação.

Resumo

Construtores públicos

ZipUtil()

Métodos públicos

static void addToZip(ZipOutputStream out, File file, List<String> relativePathSegs)

Adiciona recursivamente o arquivo e o conteúdo dele ao ZipOutputStream.

static void applyPermission(File targetFile, CentralDirectoryInfo zipEntry)

Aplicar a permissão de arquivo configurada na entrada do diretório central.

static void closeZip(ZipFile zipFile)

Fecha um ZipFile aberto, ignorando exceções.

static File createZip(File dir, String name)

Método utilitário para criar um arquivo ZIP temporário contendo o diretório especificado e todo o conteúdo dele.

static File createZip(File dir)

Método utilitário para criar um arquivo ZIP temporário contendo o diretório especificado e todo o conteúdo dele.

static File createZip(List<File> files)

Método utilitário para criar um arquivo ZIP temporário com os arquivos especificados.

static File createZip(List<File> files, String name)

Método utilitário para criar um arquivo ZIP temporário com os arquivos especificados.

static void createZip(List<File> files, File zipFile)

Método utilitário para criar um arquivo ZIP com os arquivos especificados.

static void createZip(File dir, File zipFile)

Método utilitário para criar um arquivo ZIP que contenha o diretório especificado e todo o conteúdo dele.

static File extractFileFromZip(ZipFile zipFile, String filePath)

Método utilitário para extrair um arquivo específico de um arquivo ZIP para um arquivo temporário.

static void extractZip(ZipFile zipFile, File destDir)

Método utilitário para extrair todo o conteúdo do arquivo ZIP para o diretório especificado.

static void extractZip(ZipFile zipFile, File destDir, Predicate<ZipEntry> shouldExtract)

Método utilitário para extrair o conteúdo do arquivo ZIP para o diretório especificado.

static File extractZipToTemp(File zipFile, String nameHint)

Extrair um arquivo ZIP para um diretório temporário com uma string

static List<CentralDirectoryInfo> getZipCentralDirectoryInfos(File partialZipFile, EndCentralDirectoryInfo endCentralDirInfo, long offset, boolean useZip64)

Receba uma lista de {link CentralDirectoryInfo} para arquivos em um arquivo ZIP.

static List<CentralDirectoryInfo> getZipCentralDirectoryInfos(File partialZipFile, EndCentralDirectoryInfo endCentralDirInfo)

Receba uma lista de {link CentralDirectoryInfo} para arquivos em um arquivo ZIP.

static List<CentralDirectoryInfo> getZipCentralDirectoryInfos(File partialZipFile, EndCentralDirectoryInfo endCentralDirInfo, boolean useZip64)

Receba uma lista de {link CentralDirectoryInfo} para arquivos em um arquivo ZIP.

static List<CentralDirectoryInfo> getZipCentralDirectoryInfos(File partialZipFile, EndCentralDirectoryInfo endCentralDirInfo, long offset)

Receba uma lista de {link CentralDirectoryInfo} para arquivos em um arquivo ZIP.

static void gzipFile(File file, File gzipFile)

Método auxiliar para criar uma versão compactada com gzip de um único arquivo.

static boolean isZipFileValid(File zipFile, boolean thorough)

Método utilitário para verificar se um arquivo ZIP não está corrompido.

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

Extrair um único arquivo solicitado de um arquivo ZIP parcial.

static void unzipPartialZipFolder(File targetFile, CentralDirectoryInfo zipEntry)

Extraia a pasta solicitada de um arquivo ZIP parcial e aplique a permissão adequada.

Métodos protegidos

static void validateDestinationDir(File destDir, String filename)

Construtores públicos

ZipUtil

public ZipUtil ()

Métodos públicos

addToZip

public static void addToZip (ZipOutputStream out, 
                File file, 
                List<String> relativePathSegs)

Adiciona recursivamente o arquivo e o conteúdo dele ao ZipOutputStream.

Parâmetros
out ZipOutputStream: o ZipOutputStream

file File: o File a ser adicionado ao fluxo

relativePathSegs List: o caminho relativo do arquivo, incluindo separadores

Gera
IOException se não for possível adicionar o arquivo ao ZIP

applyPermission

public static void applyPermission (File targetFile, 
                CentralDirectoryInfo zipEntry)

Aplicar a permissão de arquivo configurada na entrada do diretório central.

Parâmetros
targetFile File: o File para definir a permissão.

zipEntry CentralDirectoryInfo: um objeto CentralDirectoryInfo que contém as permissões de arquivo.

Gera
IOException se não for possível acessar o arquivo.

closeZip

public static void closeZip (ZipFile zipFile)

Fecha um ZipFile aberto, ignorando exceções.

Parâmetros
zipFile ZipFile: o arquivo a ser fechado

createZip

public static File createZip (File dir, 
                String name)

Método utilitário para criar um arquivo ZIP temporário contendo o diretório especificado e todo o conteúdo dele.

Parâmetros
dir File: o diretório a ser compactado

name String: o nome base do arquivo ZIP criado sem a extensão.

Retorna
File um zip temporário File com o conteúdo do diretório

Gera
IOException se não for possível criar o arquivo ZIP

createZip

public static File createZip (File dir)

Método utilitário para criar um arquivo ZIP temporário contendo o diretório especificado e todo o conteúdo dele.

Parâmetros
dir File: o diretório a ser compactado

Retorna
File um zip temporário File com o conteúdo do diretório

Gera
IOException se não for possível criar o arquivo ZIP

createZip

public static File createZip (List<File> files)

Método utilitário para criar um arquivo ZIP temporário com os arquivos especificados.

Parâmetros
files List: lista de arquivos a serem compactados

Retorna
File um zip temporário File com o conteúdo do diretório

Gera
IOException se não for possível criar o arquivo ZIP

createZip

public static File createZip (List<File> files, 
                String name)

Método utilitário para criar um arquivo ZIP temporário com os arquivos especificados.

Parâmetros
files List: lista de arquivos a serem compactados

name String: o nome base do arquivo ZIP criado sem a extensão.

Retorna
File um zip temporário File com o conteúdo do diretório

Gera
IOException se não for possível criar o arquivo ZIP

createZip

public static void createZip (List<File> files, 
                File zipFile)

Método utilitário para criar um arquivo ZIP com os arquivos especificados.

Parâmetros
files List: lista de arquivos a serem compactados

zipFile File: o arquivo ZIP a ser criado. Ele não pode existir.

Gera
IOException se não for possível criar o arquivo ZIP

createZip

public static void createZip (File dir, 
                File zipFile)

Método utilitário para criar um arquivo ZIP que contenha o diretório especificado e todo o conteúdo dele.

Parâmetros
dir File: o diretório a ser compactado

zipFile File: o arquivo ZIP a ser criado. Ele não pode existir.

Gera
IOException se não for possível criar o arquivo ZIP

extractFileFromZip

public static File extractFileFromZip (ZipFile zipFile, 
                String filePath)

Método utilitário para extrair um arquivo específico de um arquivo ZIP para um arquivo temporário.

Parâmetros
zipFile ZipFile: o ZipFile a ser extraído

filePath String: o caminho do arquivo a ser extraído

Retorna
File o File ou nulo se não for encontrado

Gera
IOException se houver falha ao extrair o arquivo

extractZip

public static void extractZip (ZipFile zipFile, 
                File destDir)

Método utilitário para extrair todo o conteúdo do arquivo ZIP para o diretório especificado.

Parâmetros
zipFile ZipFile: o ZipFile a ser extraído

destDir File: o diretório local para extrair o arquivo

Gera
IOException se houver falha ao extrair o arquivo

extractZip

public static void extractZip (ZipFile zipFile, 
                File destDir, 
                Predicate<ZipEntry> shouldExtract)

Método utilitário para extrair o conteúdo do arquivo ZIP para o diretório especificado.

Parâmetros
zipFile ZipFile: o ZipFile a ser extraído

destDir File: o diretório local para extrair o arquivo

shouldExtract Predicate: o predicado para determinar se um ZipEntry precisa ser extraído.

Gera
IOException se houver falha ao extrair o arquivo

extractZipToTemp

public static File extractZipToTemp (File zipFile, 
                String nameHint)

Extrair um arquivo ZIP para um diretório temporário com uma string

Parâmetros
zipFile File: o arquivo ZIP a ser extraído

nameHint String: um prefixo para o diretório temporário

Retorna
File um File que aponta para o diretório temporário

Gera
IOException
ZipException

getZipCentralDirectoryInfos

public static List<CentralDirectoryInfo> getZipCentralDirectoryInfos (File partialZipFile, 
                EndCentralDirectoryInfo endCentralDirInfo, 
                long offset, 
                boolean useZip64)

Receba uma lista de {link CentralDirectoryInfo} para arquivos em um arquivo ZIP.

Parâmetros
partialZipFile File: um objeto File do arquivo ZIP parcial que contém entradas do diretório central.

endCentralDirInfo EndCentralDirectoryInfo: um objeto EndCentralDirectoryInfo do arquivo ZIP.

offset long: o ajuste de horário no arquivo ZIP parcial em que o conteúdo das entradas do diretório central começa.

useZip64 boolean: um booleano para oferecer suporte ao formato zip64 no download parcial.

Retorna
List<CentralDirectoryInfo> Uma lista de CentralDirectoryInfo do arquivo ZIP

Gera
java.io.IOException
IOException

getZipCentralDirectoryInfos

public static List<CentralDirectoryInfo> getZipCentralDirectoryInfos (File partialZipFile, 
                EndCentralDirectoryInfo endCentralDirInfo)

Receba uma lista de {link CentralDirectoryInfo} para arquivos em um arquivo ZIP.

Parâmetros
partialZipFile File: um objeto File do arquivo ZIP parcial que contém entradas do diretório central.

endCentralDirInfo EndCentralDirectoryInfo: um objeto EndCentralDirectoryInfo do arquivo ZIP.

Retorna
List<CentralDirectoryInfo> Uma lista de CentralDirectoryInfo do arquivo ZIP

Gera
java.io.IOException
IOException

getZipCentralDirectoryInfos

public static List<CentralDirectoryInfo> getZipCentralDirectoryInfos (File partialZipFile, 
                EndCentralDirectoryInfo endCentralDirInfo, 
                boolean useZip64)

Receba uma lista de {link CentralDirectoryInfo} para arquivos em um arquivo ZIP.

Parâmetros
partialZipFile File: um objeto File do arquivo ZIP parcial que contém entradas do diretório central.

endCentralDirInfo EndCentralDirectoryInfo: um objeto EndCentralDirectoryInfo do arquivo ZIP.

useZip64 boolean: um booleano para oferecer suporte ao formato zip64 no download parcial.

Retorna
List<CentralDirectoryInfo> Uma lista de CentralDirectoryInfo do arquivo ZIP

Gera
java.io.IOException
IOException

getZipCentralDirectoryInfos

public static List<CentralDirectoryInfo> getZipCentralDirectoryInfos (File partialZipFile, 
                EndCentralDirectoryInfo endCentralDirInfo, 
                long offset)

Receba uma lista de {link CentralDirectoryInfo} para arquivos em um arquivo ZIP.

Parâmetros
partialZipFile File: um objeto File do arquivo ZIP parcial que contém entradas do diretório central.

endCentralDirInfo EndCentralDirectoryInfo: um objeto EndCentralDirectoryInfo do arquivo ZIP.

offset long: o ajuste de horário no arquivo ZIP parcial em que o conteúdo das entradas do diretório central começa.

Retorna
List<CentralDirectoryInfo> Uma lista de CentralDirectoryInfo do arquivo ZIP

Gera
java.io.IOException
IOException

gzipFile

public static void gzipFile (File file, 
                File gzipFile)

Método auxiliar para criar uma versão compactada com gzip de um único arquivo.

Parâmetros
file File: o arquivo original

gzipFile File: o arquivo em que o conteúdo compactado será colocado

Gera
java.io.IOException
IOException

isZipFileValid

public static boolean isZipFileValid (File zipFile, 
                boolean thorough)

Método utilitário para verificar se um arquivo ZIP não está corrompido.

Parâmetros
zipFile File: o File a ser verificado

thorough boolean: indica se é preciso tentar extrair o arquivo por completo. Se false, esse método não vai detectar erros de CRC em um arquivo bem formado.

Retorna
boolean false se o arquivo parecer estar corrompido. Caso contrário, true.

Gera
IOException se não for possível abrir ou ler o arquivo

unzipPartialZipFile

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

Extrair um único arquivo solicitado de um arquivo ZIP parcial.

Esse método pressupõe que todos os arquivos estão no mesmo disco quando compactados.

Se ERROR(/targetFile) for um diretório, um diretório vazio será criado sem o conteúdo dele.

Se ERROR(/targetFile) for um symlink, um symlink será criado, mas não resolvido.

Ele ainda não é compatível com os seguintes recursos:

Arquivo ZIP maior que 4 GB

ZIP64(requer atualização de ZipLocalFileHeader no tamanho compactado)

Arquivo ZIP criptografado

Parâmetros
partialZip File: um File que é uma parte do arquivo ZIP.

targetFile File: o File em que o arquivo extraído será salvo.

zipEntry CentralDirectoryInfo: um objeto CentralDirectoryInfo do arquivo a ser extraído do arquivo ZIP parcial.

localFileHeader LocalFileHeader: um objeto LocalFileHeader do arquivo a ser extraído do arquivo ZIP parcial.

startOffset long: início do deslocamento do arquivo a ser extraído.

Gera
java.io.IOException
IOException

unzipPartialZipFolder

public static void unzipPartialZipFolder (File targetFile, 
                CentralDirectoryInfo zipEntry)

Extraia a pasta solicitada de um arquivo ZIP parcial e aplique a permissão adequada.

Parâmetros
targetFile File: o File em que o arquivo extraído será salvo.

zipEntry CentralDirectoryInfo: um objeto CentralDirectoryInfo do arquivo a ser extraído do arquivo ZIP parcial.

Gera
java.io.IOException
IOException

Métodos protegidos

validateDestinationDir

protected static void validateDestinationDir (File destDir, 
                String filename)

Parâmetros
destDir File

filename String

Gera
IOException