Ich möchte lernen, wie man Ordnerstrukturen, mit Inhalt zippt. Dazu habe ich mir folgendes Video angeschaut:
Und ich habe mir auf java2s das hier angeschaut: http://www.java2s.com/Code/Java/Fil...toryincludingitssubdirectoriesrecursively.htm
Ich nehme mal den Code aus Letzteren:
Ich finde das ist ziemlich kompliziert! Kennt ihr vielleicht ne bessere Seite, mit nem leichteren Beispiel?
Muss ich das in zwei Methoden aufteilen? Ich fänds praktischer, wenn ich alles in ein Button schreiben könnte.
File[] files = dirObj.listFiles(); was macht das??
byte[] tmpBuf = new byte[1024]; wofür brauch ich das? Ist das so ne Art Größer, in der die Sachen gespeichert werden?
out.closeEntry(); was macht dieses closeEntry?
Muss ich Schleifen benutzen?
Was ich eigentlich machen will ist ein Ordner auf dem Desktop zu zippen, in dem Ordner sind dann noch 3 Dateien drin. Den Pfad dafür habe ich auch schon:
Aber dann weiß ich nicht weiter :/ Habt ihr vielleicht ein Beispiel für mich, aus dem ich dann ableiten könnte, wie ich es bauen kann?
LG
Ich nehme mal den Code aus Letzteren:
Java:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
public class Main {
private static void zipDir(String zipFileName, String dir) throws Exception {
File dirObj = new File(dir);
ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipFileName));
System.out.println("Creating : " + zipFileName);
addDir(dirObj, out);
out.close();
}
static void addDir(File dirObj, ZipOutputStream out) throws IOException {
File[] files = dirObj.listFiles();
byte[] tmpBuf = new byte[1024];
for (int i = 0; i < files.length; i++) {
if (files[i].isDirectory()) {
addDir(files[i], out);
continue;
}
FileInputStream in = new FileInputStream(files[i].getAbsolutePath());
System.out.println(" Adding: " + files[i].getAbsolutePath());
out.putNextEntry(new ZipEntry(files[i].getAbsolutePath()));
int len;
while ((len = in.read(tmpBuf)) > 0) {
out.write(tmpBuf, 0, len);
}
out.closeEntry();
in.close();
}
}
public static void main(String[] args) throws Exception {
zipDir(args[0], args[1]);
}
}
Muss ich das in zwei Methoden aufteilen? Ich fänds praktischer, wenn ich alles in ein Button schreiben könnte.
File[] files = dirObj.listFiles(); was macht das??
byte[] tmpBuf = new byte[1024]; wofür brauch ich das? Ist das so ne Art Größer, in der die Sachen gespeichert werden?
out.closeEntry(); was macht dieses closeEntry?
Muss ich Schleifen benutzen?
Was ich eigentlich machen will ist ein Ordner auf dem Desktop zu zippen, in dem Ordner sind dann noch 3 Dateien drin. Den Pfad dafür habe ich auch schon:
Java:
String homeDirectory = new JFileChooser().getFileSystemView().getHomeDirectory().toString();
String dir = homeDirectory + "\\" + vorname.trim() + " " + nachname.trim();
LG