Wie soll ich komprimierte Ordner in Java extrahieren?

8

Ich verwende den folgenden Code, um eine Zip-Datei in Java zu extrahieren.

%Vor%

Offensichtlich wird dies aufgrund der break-Anweisung keinen Ordnerbaum extrahieren. Ich habe versucht, Rekursion zu verwenden, um eine Ordnerstruktur zu verarbeiten, aber es ist fehlgeschlagen. Könnte mir jemand zeigen, wie man diesen Code verbessert, um mit einer Ordner-Struktur statt mit einem komprimierten Ordner auf einer Ebene umzugehen.

    
Chathuranga Chandrasekara 02.06.2009, 11:14
quelle

3 Antworten

7

Sie können File.mkdirs () verwenden, um Ordner zu erstellen. Versuchen Sie, Ihre Methode wie folgt zu ändern:

%Vor%     
Emre 02.06.2009, 11:40
quelle
0

Eine weitere Option ist commons-compress , für die auf der oben verlinkten Seite Beispielcode vorhanden ist.

    
hd1 27.11.2012 22:42
quelle
0

Ich musste dies tun, weil eine API, die ich verwendete, einen Dateiparameter benötigte, den Sie nicht von einer Ressource in einer JAR erhalten können.

Ich habe festgestellt, dass die Antwort von @Emre nicht korrekt funktioniert hat. Aus irgendeinem Grund übersprang ZipEntry einige Dateien im JAR (kein offensichtliches Muster dafür). Ich habe das mit JarEntry behoben. Es gibt auch einen Fehler im obigen Code, wo die Datei im ZIP-Eintrag vor dem Verzeichnis aufgelistet werden kann, was eine Ausnahme verursacht, weil das Verzeichnis noch nicht erstellt wurde.

Beachten Sie, dass der folgende Code von Apache Commons-Dienstprogrammklassen abhängt.

%Vor%     
bcoughlan 20.05.2013 22:58
quelle

Tags und Links