Boa tarde pessoal, Estou com o seguinte problema Eu tenho um Diretorio que dentro dele contem vários outros diretório e quando coloco para compacta-los a primeira pasta passa mais a segunda não passa. segue o código
public static void compactarParaZip(String arqSaida,String arqEntrada) throws IOException{
JOptionPane.showMessageDialog(null, "Aguarde o arquivo de backup está sendo compactado!");
int cont;
byte[] dados = new byte[TAMANHO_BUFFER];
String Arquivos[];
BufferedInputStream origem = null;
FileInputStream streamDeEntrada = null;
FileOutputStream destino = null;
ZipOutputStream saida = null;
ZipEntry entry = null;
try {
destino = new FileOutputStream(new File(arqSaida));
saida = new ZipOutputStream(new BufferedOutputStream(destino));
File file = new File(arqEntrada);
if(file.isDirectory()){
JOptionPane.showMessageDialog(null, "Compactando Arquivo!");
for (File arquivos : file.listFiles()) {
streamDeEntrada = new FileInputStream(arquivos);
origem = new BufferedInputStream(streamDeEntrada, TAMANHO_BUFFER);
entry = new ZipEntry(arquivos.getName());
saida.putNextEntry(entry);
while((cont = origem.read(dados, 0, TAMANHO_BUFFER)) != -1) {
saida.write(dados, 0, cont);
}}
}else{
JOptionPane.showMessageDialog(null, "É um arquivo");
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);
}
}
Log.info("Arquivo de Backup criado!");
origem.close();
saida.close();
} catch(IOException e) {
Log.Warning("Arquivo de Backup Não Compactado pelo motivo: ", e);
throw new IOException(e.getMessage());
}
}
Alguém poderia me ajudar?