Ich habe ein Programm für Batch-System unter Verwendung von Quarz zu schreiben, und ich finde ein Problem,Datei renameTo & File.delete
if(!file.renameTo(new File(PATH_FILE_PROCESSED+file.getName())))System.out.println("Cannot Move File :"+file.getAbsolutePath());
else{
if(!file.delete())System.out.println("Cannot Delete File :"+file.getAbsolutePath());
}
i-Datei aus einem Verzeichnis in ein anderes Verzeichnis verschieben möchten, aber ich kann nicht löschen die Datei im selben Prozess, von meiner Analyse ich denke, die Datei nicht fertig kopiert haben dann die Datei.delete(); meine Frage ist, gibt es eine Möglichkeit zu warten, bis die Datei fertig kopiert, dann führen Sie die Datei.delete? dank
Lesen Sie Ihren Code, es sieht aus wie Sie in den 'else' Block gehen, wenn der' renameTo' Aufruf * erfolgreich *. Die Datei existiert also nicht mehr am ursprünglichen Speicherort. Sie können es also nicht von seinem ursprünglichen Speicherort löschen, da es nicht mehr vorhanden ist. –
nein renameTo in Java tatsächlich Kopieren der Datei nicht Verschieben der Datei das ist, warum ich löschen möchte, wenn es erfolgreich ist –
Wenn 'File.renameTo' kopiert die Datei auf Ihrem Computer, anstatt es umzubenennen, als Sie ein Problem auf Ihrer Plattform haben das sollte ich nicht tun. Dasselbe Problem kann sich auch auf den Löschvorgang auswirken. –