Wie wir Zip Archive erstellen haben wir im Beitrag Erstellen von Zip Dateien gelesen.
Nun möchten wir diese aber auch gerne wieder entpacken.
Dazu bedarf es einer Methode welche den ZipInputStream zum Zip Archiv bereitstellt.
/**
* Entpacken eines Zip Archives
* @param srcFile - das Zip Archiv welches entpackt werden soll
* @param destFolder - das Zielverzeichnis
*/
public static void unZipFile(final File srcFile, final String destFolder) {
ZipInputStream zipIn = null;
try {
//ein Stream zum zip Archiv öffnen
zipIn = new ZipInputStream(new FileInputStream(srcFile));
//ein ZipEntry Objekt holen
ZipEntry zipEntry = zipIn.getNextEntry();
//Sollange noch Dateien in dem Zip Archiv vohanden sind werden diese extraiert.
while (zipEntry != null) {
//Ein OutputStream für die Zieldatei erstellen
FileOutputStream fout = new FileOutputStream(destFolder.concat(zipEntry.getName()));
for (int c = zipIn.read(); c != -1; c = zipIn.read()) {
fout.write(c);
}
//Das geöffnete ZipEntry schließen
zipIn.closeEntry();
//Den Stream zur Zieldatei abschließen
fout.flush();
//Den Stream zur Zieldatei schließen
fout.close();
//das nächste ZipEntry Objekt holen
//sollten keine weiteren ZipEntry Objekte im Zip Archiv sein so wird NULL zurück gegeben.
zipEntry = zipIn.getNextEntry();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
//Den Stream schließen.
if (zipIn != null) {
try {
zipIn.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
Letzte Aktualisierung am: 02. Mai 2023