Dateien auf Diskette kopieren

Status
Nicht offen für weitere Antworten.

spoon

Neues Mitglied
Hi,
also ich habe folgendes Problem:
für ein Projekt müssen Dateien aus einem Verzeichnis auf Diskette(n) kopiert werden.
Dabei sind in dem Verzeichnis natürlich nicht immer gleich viele Dateien und es kann durchaus vorkommen, dass dafür mehrere Disketten benötigt werden.
Ich habe das ganze schon über run.exec("cmd /c copy F:/test/*.* a:/"); versucht, das Problem dabei ist aber, dass nicht alle dateien kopiert werden, sondern manchmal nur eine, maximal 20%.
Nun habe ich momentan keine genaue Vorstellung, wie ich das in Java lösen könnte, den umweg über eine BAT-Datei würde ich ungerne gehen.

mfg
 
Du kannst in Java keine Dateien direkt kopieren (jedenfalls wüsste ich nicht wie, vielleicht gibts irgendwo eine Library dafür...). Aber du kannst Dateien lesen und schreiben -> zu kopierende Datei byteweise lesen, und in die Zieldatei schreiben.

Ich weiss nicht, was passiert, wenn der Platz ausgeht. Aber wenn du die Datei byteweise liest/schreibst, kannst du ja gleich mitzählen.

Simples, langsames Beispiel:
Code:
InputStream in = new FileInputStream( "c:/xyz/datei" );
OutputStream out = new FileOutputStream( "f:/datei");
int read = in.read();
while( read != -1 ){
  out.write( read );
  read = in.read();
}

P.S. oder benutz die Channels von NIO, damit gewinnst du erheblich Performance.
 
Vorher evtl. die Datei spliten falls zu groß. Eine schnellere Variante bietet noch die Klasse FileChannel.

Mal so ganz nebenbei, wer verwendet heutzutage noch Disketten?
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben