Entpacken von Zip Dateien

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

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.