Verzeichnis in einem ZIP Archiv erstellen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Verzeichnis in einem ZIP Archiv erstellen

    Hi!

    Ich stehe grad vor dem Problem in einem aus Java heraus erstellten ZIP Archiv ein Verzeichnis zu erstellen.
    Ich kann zwar eine Ordnerstruktur angeben, jedoch werden nur die Dateien in den Ordnern dem ZIP hinzugefügt, aber es wird nicht die Ordnerstruktur übernommen.
    Hat jemand ne Ahnung wie das läuft?

    Grüße,
    Chris
  • Poste mal deinen Code.

    Mit dieser Klasse

    Quellcode

    1. public class Zip {
    2. public static void main(String args[]) {
    3. PrintWriter stdout = new PrintWriter(System.out, true);
    4. int read = 0;
    5. FileInputStream in;
    6. byte[] data = new byte[1024];
    7. try {
    8. // Zip-Archiv mit Stream verbinden
    9. ZipOutputStream out =
    10. new ZipOutputStream(new FileOutputStream(args[0]));
    11. // Archivierungs-Modus setzen
    12. out.setMethod(ZipOutputStream.DEFLATED);
    13. // Hinzufügen der einzelnen Einträge
    14. for (int i=1; i < args.length; i++) {
    15. try {
    16. stdout.println(args[i]);
    17. // Eintrag für neue Datei anlegen
    18. ZipEntry entry = new ZipEntry(args[i]);
    19. in = new FileInputStream(args[i]);
    20. // Neuer Eintrag dem Archiv hinzufügen
    21. out.putNextEntry(entry);
    22. // Hinzufügen der Daten zum neuen Eintrag
    23. while((read = in.read(data, 0, 1024)) != -1)
    24. out.write(data, 0, read);
    25. out.closeEntry(); // Neuen Eintrag abschließen
    26. in.close();
    27. }
    28. catch(Exception e) {
    29. e.printStackTrace();
    30. }
    31. }
    32. out.close();
    33. }
    34. catch(IOException ex) {
    35. ex.printStackTrace();
    36. }
    37. }
    38. }
    Alles anzeigen


    von http://www.dpunkt.de/java/Programmieren_mit_Java/Streams/17.html klappt es wunderbar. Und große Geheimnisse sind in dem Code ja auch nicht versteckt.