Galera, seguinte, estou fazendo testes aqui com o java.util.zip, só que estou com um problema, com certeza o erro é besta, mas eu não estou conseguindo “enxergar”…
Peguei esse código de um site, que não me recordo, e estou fazendo as adaptações que necessito:
[code]public void compactar(String arqSaida, ArrayList arqEntrada) throws IOException {
int cont;
byte[] dados = new byte[TAMANHO_BUFFER];
BufferedInputStream origem = null;
FileInputStream streamDeEntrada;
FileOutputStream destino;
ZipOutputStream saida;
ZipEntry entry;
try {
destino = new FileOutputStream(new File(arqSaida));
saida = new ZipOutputStream(new BufferedOutputStream(destino));
for (int i = 0; i < arqEntrada.size(); i++) {
File file = (File) arqEntrada.get(i);
streamDeEntrada = new FileInputStream(file);
origem = new BufferedInputStream(streamDeEntrada, TAMANHO_BUFFER);
entry = new ZipEntry(file.getName());
saida.putNextEntry(entry);
while ((cont = origem.read(dados, 0, TAMANHO_BUFFER)) != -1) {
saida.write(dados, 0, cont);
}
}
origem.close();
saida.close();
} catch (IOException e) {
throw new IOException(e.getMessage());
}
}[/code]
Esse código simplesmente pega os arquivos do ArrayList e comprime eles para um arquivo .zip qualquer, só que se houver uma pasta com arquivos dentro do ArrayList, ele dá erro no FileInputStream, porque não da pra ler uma pasta (acredito que seja esse o erro). Então como eu faço para resolver isso? Como criar a pasta dentro do .zip e inserir os arquivos necessários dentro dela?