classe pública Descompactar {
/**
* A função de descompactar arquivos para o diretório atual equivale a clicar com o botão direito e selecionar descompactar.
* @param zipFile
* @param
* @autor gabriel
*/
@SuppressWarnings("tipos brutos")
public static void unZipFiles(Arquivo zipFile)throws IOException{
//Obtém o diretório onde o arquivo compactado está localizado
String path=zipFile.getAbsolutePath();
caminho=path.substring(0,path.lastIndexOf("//"));
// System.out.println("caminho "+caminho);
ZipFile zip = new ZipFile(zipFile);
for(Entradas de enumeração =zip.entries();
entradas.hasMoreElements();){
Entrada ZipEntry = (ZipEntry)entries.nextElement();
String zipEntryName = entrada.getNome();
InputStream in = zip.getInputStream(entrada);
//diretório de saída outPath
String outPath = (caminho+"//"+zipEntryName).replaceAll("//*", "/");
//System.out.println("outPath "+outPath);
//Determine se o caminho existe, caso contrário, crie o caminho do arquivo
Arquivo arquivo = new File(outPath.substring(0, outPath.lastIndexOf('/')));
if(!file.exists()){
arquivo.mkdirs();
}
//Determina se o caminho completo do arquivo é uma pasta. Se foi carregado acima, não há necessidade de descompactá-lo.
if(novo arquivo(outPath).isDirectory()){
continuar;
}
//Saída de informações do caminho do arquivo
System.out.println(outPath);
OutputStream out = new FileOutputStream(outPath);
byte[] buf1 = novo byte[1024];
interno;
while((len=in.read(buf1))>0){
out.write(buf1,0,len);
}
in.close();
out.close();
}
System.out.println("****************Descompactação concluída*************************** *");
}
public static void main(String[] args) {
tentar {
unZipFiles(new Arquivo("D://all//zip//Default.adiumemoticonset.zip"));
} catch (IOException e) {
// TODO Bloco catch gerado automaticamente
e.printStackTrace();
}
}
}