Zip em Java

Olá,
Estava lendo este tutorial: Zip com Java: Compressão e Descompressão de Dados, gostei muito está de parabéns, mas quando eu vou compilar aquele código que está no tutorial, me era retornado este erro, lembrando que eu estou usando o JDK 1.6:

E o código é este:

import java.io.*;
import java.util.zip.*;

public class ListZip {
  public static void main(String[] args) throws IOException {
    String arquivo = "c:/teste.zip";
    ZipFile zip = new ZipFile( arquivo );
    Enumeration e = zip.entries();
    while( e.hasMoreElements() ) {
      ZipEntry entrada = (ZipEntry) e.nextElement();
      System.out.println( entrada.getName() );
    }
    zip.close();
  }
}

Obrigado,
Nathan Paulino Campos

A interface Enumeration pertençe ao pacote java.util, e vc não a importou.

Adicione no começo a linha

import java.util.Enumeration;

[]'s

Olá Felagund,
Obrigado deu tudo certo agora, mas você não concorda comigo que isto deveria estar no tutorial, para as pessoas como eu que não sabem disto.

Obrigado,
Nathan Paulino Campos

Mas aproveitando, como se faz para que o meu programa crie o ZIP ?

Espero que ajude:

http://www.exampledepot.com/egs/java.util.zip/CreateZip.html

Simples assim!!
Segue exemplo;


public void zip(OutputStream out, Collection<File> files) throws IOException {

		ZipOutputStream zipOut = new ZipOutputStream(out);				

		byte[] buf = new byte[1024];
		for (File f : files) {		
			//Pega o input Stream do arquivo para poder copiar pra dentro do zip
			BufferedInputStream bufferIn = new BufferedInputStream(new FileInputStream(f)); 

			ZipEntry zipEntry = new ZipEntry(f.getName());
			zipOut.putNextEntry(zipEntry);
			zipOut.setMethod(ZipOutputStream.DEFLATED);		

			//Copia o Stream p/ dentro do zip 
			//OBS: IMPORTANTE!!! Não fechar o zip apos a copia so no fim do for!
			// Transfer bytes from the file to the ZIP file
           
			int len;
            while ((len = bufferIn.read(buf)) > 0) {
                out.write(buf, 0, len);
            }

			bufferIn.close();

		}	

		if(zipOut != null) {
			zipOut.close();
		}		

Se caso tenha mais alguma duvida pode postar!
Abraços!

Muito obrigado mesmo á todos.Vocês me ajudaram muito.

Abraços,
Nathan Paulino Campos

Olá a todos deste forum,

Gostaria saber com eu crio um arquivo zip apartir de um diretorio passado ele compactar todos os arquivos TXT dentro dele, sei que esse tutorial e muito bom mas eu sou novato em java…

Alguem me ajude por favor…

[quote=wellingtonsv]Olá a todos deste forum,

Gostaria saber com eu crio um arquivo zip apartir de um diretorio passado ele compactar todos os arquivos TXT dentro dele, sei que esse tutorial e muito bom mas eu sou novato em java…

Alguem me ajude por favor…[/quote]
Tenho aqui uma classe utilitária para fazer algumas manipulações com arquivos zip, mas recomendo dar uma olhada também na API TrueZIP.
To enviando a classe “SAWZipUtils”, que consegue compactar e extrair arquivos “zip”.
Para compactar, basta chamar o método “createZipFile(String zipFilePath, int level, final byte[] readBuffer, String… sourcePaths)”, onde “zipFilePath” é o caminho onde o arquivo zip será criado, “level” é o nível de compressão usado, “readBuffer” é um array de bytes usado como buffer e “sourcePaths” seriam os arquivos e/ou pastas que seriam compactados dentro do zip, sendo que no caso de pastas o conteúdo de cada uma das pastas e subpastas é compactado também.
Para descompactar tem o método “extractZipFile(String zipFilePath, final byte[] readBuffer, String destinationPath)”, onde “zipFilePath” é o caminho de onde está o arquivo zip a ser descompactado, “readBuffer” é um array de bytes usado como buffer e “destinationPath” é o caminho onde a descompactação seria feita, sendo que no caso da descompatação, sempre TODO o conteúdo do arquivo zip é descompactado no caminho indicado.
Recomendo usar como buffer pelo menos 8192 bytes.

Inté.

Muito obrigado amigo KWill e desculpas pela demora no agradecimento,

Estou conseguindo zipar o arquivos em diretorios diferentes valeu mesmo pela ajuda…

So queria uma coisa e possivel zipar esses arquivos com data corrente ou seja data atual ?

Desde ja eu agradeço pela força amigo…

Att.,
Wellington Vieira

A minha classe utilitária “SAWZipUtils” recebeu algumas atualizações para poder compactar diretórios vazios.
As instruções para uso continuam as mesmas.

Até mais.