Slyh: Zippen mehrere Dateien und Directory nach einem Ausgang

Beitrag lesen

Hallo,

danke für eure Beitrag, wieso meine Fragen macht euch durcheinander, so ich bitte um Entschuldigung, jemand hat Recht dass meine Deutsche Sprache wahrscheinlich nicht so gut.

Macht ja nix. Viel wichtiger wäre es, daß deine Problembeschreibung
so detailliert ist, daß wir damit etwas anfangen können. Leider ist
(zumindest) mir noch immer nicht klar, was denn nun überhaupt dein
genaues Problem ist.

Der Code, den du in deinem Ausgangsposting genannt hast, sieht ja schon
ziemlich ordentlich aus. Du kannst Dateien und Verzeichnisse
(inklusive der enthaltenen Dateien) einpacken. Beide Methoden, die
das leisten, befinden sich offensichtlich noch in verschiedenen
Applikationen. Beide Methoden in eine Applikation zu übernehmen,
und vielleicht noch ein wenig anzupassen, sollten ja eigentlich
unproblematisch sein.

Mach doch mal einfach folgendes:
Schreibe ein Programm, das rekursiv alle Verzeichnisse durchlaufen
kann, und jeweils das aktuelle Verzeichnis relativ zum Start-
Verzeichnis, sowie die gerade verarbeitete Datei ausgeben kann. Wenn
das funktioniert, hast du den wichtigsten Schritt bereits getan.

Von dort ausgehend, sollte es meiner Meinung nach kein Problem mehr
sein, eine Methode "addFileToZip(File file, String relativePath)" zu
schreiben, die die jeweils aktuelle Datei in das ZIP schreibt. (Den
relevanten Code hast du ja bereits gepostet.)

Auch einzelne Dateien könntest du mit derselben Methode in das ZIP
übernehmen. Ein Verzeichnis ist ja auch nichts anderes als eine
Sammlung von Dateien. Die mußt nur zuerst die Dateien, die im
enthalten sind, herausfinden...

Vielleicht noch ein wenig Code für den Einstieg:

public static void main(String[] args) throws IOException
   {
      // Prepare ZIP output here. Open ZipOutputStream and so on.
      // ...
      // ZipOutputStream out = ...
      // ...

// Adding directories and files.
      for (int i = 0; i < args.length; i++) {
         File dirOrFile = new File(args[i]);
         if (dirOrFile.isDirectory()) {
            addDirToZip(dirOrFile, out);
         } else (if dirOrFile.isFile()) {
            addFileToZip(dirOrFile, out);
         }
      }
   }

Das ist natürlich nur als Beispiel zu verstehen. Du solltest es
deinen Bedürfnissen anpassen.

Es wäre schon wenn jemand ein Beispiel oder Code geben kann. Ich bedanke mich im voraus.

Den Code, den du selbst geliefert hast, ist als Grundlage doch schon
sehr brauchbar.

Leider hast du trotz deiner drei Postings noch immer keine für uns
sinnvolle Problembeschreibung gegeben. Ein "Geht nicht" bringt
uns ohne genauen Grund nichts. Wie du oben vielleicht bemerkt hast,
kann ich nur vermuten wo dein Problem liegt.

Gruß
Slyh