Piotr
Nowicki
JFB Systems,
właściciel
Temat: pakowanie do zip bez kompresji
Próbuje zapisać kilka plików do zipa, zależy mi na szybkości więc chciałbym ustawić brak kompresji.Napisałem kod:
public static void zipPackege(final String dirName){
final String nazwaPliku = "c:\\paczka.zip";
int x;
try{
final File katalog = new File(dirName);
final String[] nazwyPlikow = katalog.list();
final ZipOutputStream zos = new ZipOutputStream(
new BufferedOutputStream(
new FileOutputStream(nazwaPliku)));
zos.setMethod(ZipOutputStream.STORED);
for (int i = 0; i < nazwyPlikow.length; i++) {
System.out.println("Zapisywanie " + nazwyPlikow[i]);
final BufferedInputStream in = new BufferedInputStream(new FileInputStream(dirName
+"/"+nazwyPlikow[i]));
final ZipEntry entry = new ZipEntry(nazwyPlikow[i]);
entry.setMethod(ZipEntry.STORED);
zos.putNextEntry(entry);
while ( (x = in.read()) != -1 ) {
zos.write(x);
}
in.close();
}
zos.close();
} catch (final IOException ioe){
ioe.printStackTrace();
}
}
i dostaje wyjątek:
java.util.zip.ZipException: STORED entry missing size, compressed size, or crc-32
at java.util.zip.ZipOutputStream.putNextEntry(ZipOutputStream.java:167)
at Utils.zipPackege(Utils.java:85)
at Test.main(Test.java:25)
Ktoś wie o co chodzi? Albo jak to zrobić?