boa tarde amigos,
o meu problema e o seguinte:
tenho uma classe que recebe um list com os arquivos para compactar e uma string com o
nome do arquivo que sera gerado como compactado
ate blz…
o problema e o seguinte:
quando eu tenho uma quantidade pequena de arquivos ele gera o zip normalmente
quando eu tenho uma quantidade grande ou seja a quantidade em bytes e grande
o rar e gerado sem erro porem
consigo abrir o arquivo.rar ele mostra todos os arquivos la compactados
porem se eu clicar em um deles para abrir ele fala que o arquivo esta corrompido
os arquivos que estou usando para compactar sao arquivos de video…
o arquivo gerado fica com 5 gigabytes
sera que tem alguma limitacao de tamanho para compactar
segue em anexo o codigo…
obrigado desde ja…
[code]import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import java.util.zip.ZipOutputStream;
public class JgsZip {
public void Compacta(List<String> ArqEntrada, String ArqSaida)
throws IOException {
byte[] buf = new byte[1024];
String arquivo;
ZipOutputStream out = new ZipOutputStream(
new FileOutputStream(ArqSaida));
int i;
i = ArqEntrada.size();
for (i = 0; i < ArqEntrada.size(); i++) {
arquivo = ArqEntrada.get(i);
FileInputStream in = new FileInputStream(arquivo);
System.out.println("Compactando...:"+arquivo);
out.putNextEntry(new ZipEntry(arquivo));
int len;
while ((len = in.read(buf)) > 0) {
out.write(buf, 0, len);
}
in.close();
}
out.close();
}
public void DesCompacta(String ArqZip) throws IOException {
byte[] buf = new byte[1024];
ZipInputStream in = new ZipInputStream(new FileInputStream(ArqZip));
ZipEntry entrada;
while ((entrada = in.getNextEntry()) != null) {
OutputStream out = new FileOutputStream(entrada.getName());
int i;
while ((i = in.read(buf)) > 0) {
out.write(buf, 0, i);
}
out.close();
}
in.close();
}
}
[/code]