Ordner kopieren mit JProgressBar

Zilchinger

Mitglied
Hi,
ich habe mir zwei Methoden geschrieben, die rekursiv einen Ordner kopieren.
Jetzt will ich noch nebenbei einen JProgressBar mitlaufen lassen, aber ich habe überhaupt keine Ahnung, wie ich den in die Methoden einbinden soll.
Wie man die JProgressBar im allgemeinen nutzt weiss ich jedoch.

Hier mal die beiden Methoden:

Code:
	public void copyDirectory(File srcDir, File dstDir) throws IOException {
		if (srcDir.isDirectory()) {
			if (!dstDir.exists()) {
				dstDir.mkdir();
			}
			String[] children = srcDir.list();
			for (int i=0; i<children.length; i++) {
				copyDirectory(new File(srcDir, children[i]),
						new File(dstDir, children[i]));
			}
		} else {
			copyFile(srcDir, dstDir);
		}
	}

Code:
	public boolean copyFile(File src, File dst) throws IOException{
	    if (src.isFile()== false)
	        return false;
		InputStream in = new FileInputStream(src);
		OutputStream out = new FileOutputStream(dst);
		// Transfer bytes from in to out
		byte[] buf = new byte[1024];
		int len;
		while ((len = in.read(buf)) > 0) {
			out.write(buf, 0, len);
		}
		in.close();
		out.close();
		return true;
	}

Ich habe mir das so vorgestellt, das die Methoden den ProgressBar als Parameter mitbekommen, aber wie ermittel ich den MaxWert?

Hat da jemand eine Idee?
Danke schonmal.. :confused:
 
Hallo Thomas,
die beiden Klassen kannte ich noch nicht. Die Dinger sind so nicht schlecht, aber irgendwie helfen die bei meinem Problem nicht so ganz, Wenn ich ein einziges File kopiere klappt das, aber wenn es mehrere sind, geht ständig das Monitorfenster auf und zu und ich wollte eigentlich einen ProgressBar in der GUI verwenden, den ich mit übergebe. Naja ich bin weiter am Probieren, ich glaube den Gesamtfortschritt anzuzeigen ist ne halbe Lebensaufgabe, aber den Fortschritt einzelner Dateien könnte ich vielleicht hinbekommen. Ich probier einfach mal weiter.. ;)

Trotzdem Danke
 
Habs jetzt so gelöst, da jedes File im ProgessBar angezeigt wird, somit sieht man ja, das das Programm arbeitet. In der Mitte wird der aktuelle Filename angezeigt.

Geht soweit ganz gut.
 
Zurück