Ordnerhierarchien zippen

Endymion

Bekanntes Mitglied
Hi, ich habe das Problem, dass ich mit einem Programm Ordner zippen will. Ich verwende dazu folgenden Code:
Java:
private void zipFile(File[] files, ZipOutputStream zipOutputStream) {
		for (File file : files) {
			if (file.isFile()) {
				try {
					byte[] buffer = new byte[8192];
					FileInputStream fileInputStream = new FileInputStream(file);
					zipOutputStream.putNextEntry(new ZipEntry(file.getName()));
					for (int len; (len = fileInputStream.read(buffer)) != -1;) {
						zipOutputStream.write(buffer, 0, len);
					}
					zipOutputStream.closeEntry();
					fileInputStream.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			} else {
				zipFile(file.listFiles(), zipOutputStream);
			}
		}

	}
Nun wird dabei aber jede Datei des Ordners eingezippt, ohne denn Ordner, in dem sie ist, zu berücksichtigen. Wenn dieses Zipfile entpackt wird, werden nun alle Files im gleichen Ordner, in dem sich das Zipfile befindet, entpackt. Wenn ich beispielsweise mein zipfile.zip im Ordner D:// habe, und vorher den Ordner D://abc gezipt habe, in dem sich die Dateien a, b und c befanden, und das Zipfile entpacke, werden die Dateien in den Ordner D:// und nicht in D://abc entpackt. Wie bekomme ich die Dateien in den Ordner, in dem sie vorher waren?
 

Ähnliche Java Themen

Neue Themen


Oben