Zipando Pasta ou Arquivo
Publicado por Glauber Brilhante 11/01/2005
[ Hits: 15.517 ]
Este fonte comprime em um arquivo .zip uma pasta ou um arquivo específico.
/* Zipando.java Zipa um arquivo ou pasta gerando um arquivo .zip Data:11/01/2005 Autor: Glauber Antonio Garcia Brilhante */ import java.io.*; import java.util.zip.*; public class Zipando { // tamanho de leitura maximo static final int TAM_BUFFER = 1024 ; public static String saida=""; public static boolean TestaExistencia(String arquivo){ File arq = new File(arquivo); return arq.exists(); }//metodo testa existencia previa de arquivo public static String entrada (){ boolean verifica=false; String sobrescreve; try{ BufferedReader leia = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Zipando.java\n"); System.out.print("Zipando arquivos ou pastas \n"); System.out.print("\nDigite o nome do arquivo a ser gerado: "); saida = leia.readLine(); verifica = TestaExistencia(saida); while (verifica!=false) { System.out.print("\nO arquivo ["+saida+"] ja existe, deseja sobrescreve-lo ? [S/N]"); sobrescreve = leia.readLine().toLowerCase(); if (sobrescreve.equals("n")){ System.out.print("Digite o um novo nome para o arquivo ["+saida+"]: "); saida = leia.readLine(); verifica = TestaExistencia(saida); } else if (sobrescreve.equals("s")){ System.out.print("O arquivo sera sobrescrito... \n"); verifica=false; } }//while System.out.print("\nSelecione..compactacao de: \n"); System.out.print("1. Arquivo\n2. Pasta\n"); System.out.print("Opcao: "); return leia.readLine(); } catch(IOException e) {System.out.println("Erro na entrada de dados -> "+e.toString());} return saida; }// metodo entrada public static void zipa(String saida, int escolheu){ int i, cont; try{ File f = null; FileInputStream fileinput = null; FileOutputStream fileoutput = null; BufferedInputStream buffer = null; ZipOutputStream zipar = null; ZipEntry entry = null; byte[] dados = new byte[TAM_BUFFER]; fileoutput = new FileOutputStream(saida); zipar = new ZipOutputStream(new BufferedOutputStream(fileoutput)); // arquivo if (escolheu == 1){ String nome; BufferedReader leia = new BufferedReader(new InputStreamReader(System.in)); System.out.print("\nDigite o nome do arquivo a ser zipado: "); nome = leia.readLine(); System.out.print("\n"); f = new File(nome); // nome arquivo digitado if (f.isFile() && !(f.getName()).equals(fileoutput)){ System.out.println("Compactando: " + f); fileinput = new FileInputStream(f); buffer = new BufferedInputStream(fileinput,TAM_BUFFER); entry = new ZipEntry(nome); zipar.putNextEntry(entry); while((cont = buffer.read(dados, 0, TAM_BUFFER)) != -1) { zipar.write(dados, 0, cont); }//while buffer.close(); }// if zipar.close(); }else //pasta if (escolheu == 2) { System.out.print("\n"); String[] arquivos; f = new File("."); // todos os arquivos da pasta atual arquivos = f.list(); for (i = 0; i<(arquivos.length-1); i++) { File arquivo = new File(arquivos[i]); if (arquivo.isFile() && !(arquivo.getName()).equals(fileoutput)) { System.out.println("Compactando: " + arquivos[i]); fileinput = new FileInputStream(arquivo); buffer = new BufferedInputStream(fileinput,TAM_BUFFER); entry = new ZipEntry(arquivos[i]); zipar.putNextEntry(entry); while((cont = buffer.read(dados, 0, TAM_BUFFER)) != -1) { zipar.write(dados, 0, cont); } buffer.close(); } } zipar.close(); }// if 2 } catch(FileNotFoundException mensagem){ System.out.println("\nArquivo nao encontrado!"); System.out.println("Caso o arquivo esteja em outro diretorio, favor digitar o caminho completo.\n\n"); } catch(IOException e){ System.out.println("Erro na entrada de dados "+e.toString()); } catch(Exception e){ e.printStackTrace(); }// }// metodo para zipar public static void main(String argumento[]){ String op; op = entrada(); if (op.equals("1")){ zipa(saida,1); System.out.print("\nArquivo zipado com sucesso!\n\n"); }// else if (op.equals("2")){ zipa(saida,2); System.out.print("\nArquivos zipados com sucesso!\n\n"); }// else System.out.print("\n\nOpcao Invalida! \n\n"); }// main }//classe
Manipulação de processos em Java
Nenhum comentário foi encontrado.
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
Tem como instalar o gerenciador AMD Adrenalin no Ubuntu 24.04? (6)