Dateien kopieren?

Hi,

ich habe ne Anwendung, welche überprüfen soll, ob sich in zwei verschiedenen Verzeichnissen (eines Netzlaufwerk, eines lokal) die gleichen Versionen der Dateien befinden und ggf. diese Dateien kopieren.

Wie macht man das am dümmsten?
Das Prüfen will ich mit (File) file.lastModified() machen.
Aber wie kopiere ich möglichst schnell?
Das ganze läuft unter WinXP.
Gibt es eine File-Copy Methode oder soll ich am einfachsten rt.exec(„xcopy Datei1 Datei2“) aufrufen?
Ich muß sowieso eine andere Application danach aufrufen.

Wie könnte ich das dann noch Geschwindigkeitsmäßig optimieren?

Besten Dank

Winni

Moin

Wie macht man das am dümmsten?

Mit java.io.FileInputStream und byte-weise vergleichen.

Das Prüfen will ich mit (File) file.lastModified() machen.

Schlechte Idee, netzwerk-laufwerke produzieren da zuweilen sehr komische Daten.

Aber wie kopiere ich möglichst schnell?

java.nio.channels.FileChannel

Gibt es eine File-Copy Methode

nein.

oder soll ich am einfachsten
rt.exec(„xcopy Datei1 Datei2“) aufrufen?

würd ich nicht tun, da das nur unter windoof funktioniert. Schon Leerzeichen/Sonderzeichen in den Pfadnamen können so einen Aufruf scheitern lassen.

Wie könnte ich das dann noch Geschwindigkeitsmäßig optimieren?

liess dir die doc zu java.nio.channels.FileChannel, da stehen diverse Optimierungstechniken drin.

cu

Wie könnte ich das dann noch Geschwindigkeitsmäßig optimieren?

liess dir die doc zu java.nio.channels.FileChannel, da stehen
diverse Optimierungstechniken drin.

Es gibt da eine Methode, die direkt N Bytes von einem Channel in den
anderen kopieren kann, ohne daß du selbst die Daten erst
zwischenspeichern mußt. Diese solltest du verwenden, weil dann das
Betriebssystem den Vorgang selbst optimieren kann und eventuell
die Daten direkt vom Festplattencache (im RAM) in den Netzwerkkarten-
puffer kopieren kann.

Gruß
Thorsten