// File (or directory) with old name
File file = new File("oldname");
// File (or directory) with new name
File file2 = new File("newname");
if (file2.exists())
throw new java.io.IOException("file exists");
// Rename file (or directory)
boolean success = file.renameTo(file2);
if (!success) {
// File was not successfully renamed
}
An die neue Datei anhängen:
java.io.FileWriter out= new java.io.FileWriter(file2, true /*append=yes*/);
Dieser Code funktioniert nicht in allen Fällen oder Plattformen. Die Methode zum Umbenennen in ist nicht zuverlässig: stackoverflow.com/questions/1000183/…
– Stéphane Grenier
21. Oktober 2009 um 14:49 Uhr
Nur der Path Weg funktioniert für mich, renameTo gibt immer false zurück. Überprüfen Sie entweder die Antwort von kr37 oder diese Antwort
Nehmen wir alternativ an, wir möchten eine Datei in ein neues Verzeichnis verschieben, den gleichen Dateinamen beibehalten und alle vorhandenen Dateien dieses Namens im Verzeichnis ersetzen:
Path ist eine Schnittstelle, deren einzige Implementierungen WindowsPath, ZipPath und AbstractPath sind. Wird dies ein Problem für Multi-Plattform-Implementierungen sein?
– Cälum
1. Dezember 2015 um 15:34 Uhr
Hallo @user2104648, hier (tutorials.jenkov.com/java-nio/path.html) ist ein Beispiel dafür, wie Sie mit den Dateien in einer Linux-Umgebung umgehen können. Grundsätzlich müssen Sie java.nio.file.Paths.get(somePath) verwenden, anstatt eine der von Ihnen erwähnten Implementierungen zu verwenden
– Maxivis
9. Dezember 2015 um 15:57 Uhr
Was ist Pfadquelle = … ?
– Koray Tugay
5. Januar 2016 um 9:37 Uhr
@ kr37 einwandfreie Antwort!
– Gaurav
26. Juli 2019 um 15:57 Uhr
@KorayTugay. Path source = file.getAbsolutePath(); Woher file ist die Datei, die umbenannt werden muss.
Erstellen Sie zunächst ein File-Objekt, um das Ziel darzustellen. Überprüfen Sie, ob diese Datei existiert. Wenn es nicht vorhanden ist, erstellen Sie ein neues File-Objekt für die zu verschiebende Datei. Rufen Sie die renameTo-Methode für die zu verschiebende Datei auf und überprüfen Sie den zurückgegebenen Wert von renameTo, um festzustellen, ob der Aufruf erfolgreich war.
Wenn Sie den Inhalt einer Datei an eine andere anhängen möchten, stehen eine Reihe von Writern zur Verfügung. Basierend auf der Erweiterung klingt es wie Klartext, also würde ich mir das ansehen FileWriter.
Keine Ahnung, aber es ist genau dasselbe, was Pierre gepostet hat, ohne den Quellcode …
– Thomas Owens
21. Juli 2009 um 12:12 Uhr
Zoltán
Für Java 1.6 und niedriger glaube ich, dass die sicherste und sauberste API dafür die von Guava ist Dateien.move.
Beispiel:
File newFile = new File(oldFile.getParent(), "new-file-name.txt");
Files.move(oldFile.toPath(), newFile.toPath());
Die erste Zeile stellt sicher, dass der Speicherort der neuen Datei dasselbe Verzeichnis ist, dh die übergeordnetes Verzeichnis der alten Datei.
BEARBEITEN:
Ich habe dies geschrieben, bevor ich anfing, Java 7 zu verwenden, das einen sehr ähnlichen Ansatz einführte. Wenn Sie also Java 7+ verwenden, sollten Sie die Antwort von kr37 sehen und positiv bewerten.
Umbenennen der Datei durch Verschieben auf einen neuen Namen. (FileUtils ist von Apache Commons IO lib)
Ihr letzter Absatz beschreibt überhaupt keinen Umbenennungsvorgang. Es beschreibt eine Append-Operation.
– Benutzer207421
11. September 2015 um 7:22 Uhr