2016-10-20 8 views
0

Ich habe die folgende Java-Methode, die ich verwenden möchte, um eine Zip-Datei zu erstellen, die eine vorhandene Datei geschrieben hat (die Zip-Datei hat den gleichen Namen, nur mit der .log Erweiterung mit .zip ersetzt). Die ZIP-Datei wurde erfolgreich erstellt, die Datei ist jedoch nach Abschluss nicht vorhanden.Java schreibt nicht in Zip-Datei

Hier ist mein Code:

private static void zipFile(File fileToZip) { 

    final int bufferSize = 2048; 
    File zipFile = new File(fileToZip.getAbsolutePath().replaceAll(".log", ".zip")); 

    try (FileOutputStream fos = new FileOutputStream(zipFile.getAbsolutePath()); 
      FileInputStream fis = new FileInputStream(fileToZip); 
      ZipOutputStream zos = new ZipOutputStream(new BufferedOutputStream(fos)); 
      BufferedInputStream origin = new BufferedInputStream(fis, bufferSize)) { 

     ZipEntry ze = new ZipEntry(fileToZip.getAbsolutePath()); 
     zos.putNextEntry(ze); 
     byte[] data = new byte[bufferSize]; 
     int count; 
     while ((count = origin.read(data, 0, bufferSize)) != -1) { 
      LOGGER.info("WRITING!!!"); 
      zos.write(data, 0, count); 
     } 
     zos.closeEntry(); 

    } catch (IOException e) { 
     LOGGER.error("Error: ", e); 
    } 

} 

Irgendwelche Ideen? :)

+0

Werke für mich, obwohl die absoluten Pfadnamen verwendet, ist eine seltsame Wahl. –

Antwort

2

ändern

ZipEntry ze = new ZipEntry(fileToZip.getAbsolutePath()); 

zu

ZipEntry ze = new ZipEntry(fileToZip.getName()); 
+0

Danke, mein Herr! :) – Pete