Kamikatze
Captain
- Registriert
- Okt. 2004
- Beiträge
- 3.708
Heyho!
Wie kann ich unter Java am besten Dateien bzw. Ordner kopieren und verschieben?
Verschieben funktioniert zwar mit quelle.renameTo(ziel) - aber auch nur wenn sich die beiden Pfade auf derselben Partition befinden.
Vielen Dank!
EDIT:
Gerade noch das hier gefunden:

EDIT 2:
Ist es vllt. möglich mit dem ProcessBuilder einen entsprechenden Windows-Befehl aufzurufen? Plattformunabhängigkeit ist vorerst mal egal. Wenn ja, wie lauten die Befehle?
----
So, ich hab es inzwischen geschafft einen Ordner (über die cmd und xcopy) zu kopieren:
Das funktioniert soweit, nur jetzt hab ich noch ein anderes Problem - und zwar beim Verschieben. Da wird danach noch die selbstgeschriebene Methode
aufgerufen.
Nur löscht diese das Quellverzeichnis, bevor die Dateien überhaupt kopiert worden sind. Kann ich irgendwie das Ende des anderen Prozesses abwarten und diese Methode erst dann aufrufen?
Wie kann ich unter Java am besten Dateien bzw. Ordner kopieren und verschieben?
Verschieben funktioniert zwar mit quelle.renameTo(ziel) - aber auch nur wenn sich die beiden Pfade auf derselben Partition befinden.
Vielen Dank!
EDIT:
Gerade noch das hier gefunden:
Gibt es denn wirklich gar nichts, was mir ein bisschen Arbeit abnehmen würde? Ich kann es kaum glauben...Moving to another volume is more difficult, since this actually involves copying the file, and there is no standard Java call to copy a file.

EDIT 2:
Ist es vllt. möglich mit dem ProcessBuilder einen entsprechenden Windows-Befehl aufzurufen? Plattformunabhängigkeit ist vorerst mal egal. Wenn ja, wie lauten die Befehle?
----
So, ich hab es inzwischen geschafft einen Ordner (über die cmd und xcopy) zu kopieren:
Code:
zielordner.mkdirs();
new ProcessBuilder("cmd", "/c", "xcopy", quellordner, zielordner, "/E", "/H").start();
Das funktioniert soweit, nur jetzt hab ich noch ein anderes Problem - und zwar beim Verschieben. Da wird danach noch die selbstgeschriebene Methode
Code:
[B]public void deleteDirectory(File dir)[/B] {
if ((dir != null) && dir.exists()) {
for (File file : dir.listFiles()) {
if (file.isDirectory()) {
deleteDirectory(file);
}
file.delete();
}
dir.delete();
}
}
Nur löscht diese das Quellverzeichnis, bevor die Dateien überhaupt kopiert worden sind. Kann ich irgendwie das Ende des anderen Prozesses abwarten und diese Methode erst dann aufrufen?
Zuletzt bearbeitet: