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(); } } } }