Hi,
ich möchte eine Datei von einer Stelle an eine andere verschieben. Bisher mache ich das auf folgendem Weg:
Nun ergibt sich nur das Problem. dass die Lösch-Operation zwischen 60 und 90 Sekunden braucht, um fertig zu werden. Das hab ich per Trace überprüft, es ist wirklich nur dieseSchleife. Sie braucht im Durchschnitt 100.000 Durchläufe. Wenn ich es aber nicht in einer Schleife laufen lasse, bekomme ich einen Fehler, dass die Datei nicht gelöscht werden konnte, weil sie noch verwendet wird.
Kann mir jemand einen Tipp geben, wie ich das etwas beschleunigen kann? Bin ich vielleicht völlig falsch rangegangen?
Danke auf jeden Fall schon einmal
Gruss Maddy
ich möchte eine Datei von einer Stelle an eine andere verschieben. Bisher mache ich das auf folgendem Weg:
Code:
// Datei an neuen Speicherort schreiben
try {
FileInputStream reader = new FileInputStream(quelle);
OutputStream writer = new FileOutputStream(ziel);
byte[] buf = new byte[4096];
int len;
while ((len = reader.read(buf)) > 0) {
writer.write(buf, 0, len);
}
writer.flush();
writer.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
// Datei am alten Ort löschen
boolean success = false;
while(success == false) {
success = quelle.delete();
}
Nun ergibt sich nur das Problem. dass die Lösch-Operation zwischen 60 und 90 Sekunden braucht, um fertig zu werden. Das hab ich per Trace überprüft, es ist wirklich nur dieseSchleife. Sie braucht im Durchschnitt 100.000 Durchläufe. Wenn ich es aber nicht in einer Schleife laufen lasse, bekomme ich einen Fehler, dass die Datei nicht gelöscht werden konnte, weil sie noch verwendet wird.
Kann mir jemand einen Tipp geben, wie ich das etwas beschleunigen kann? Bin ich vielleicht völlig falsch rangegangen?
Danke auf jeden Fall schon einmal
Gruss Maddy