Datei vom aktuellen Verzeichnis in ein neues Verzeichnis in Java verschieben
-
Verwenden Sie die
Files.move()
-Methode von Java NIO, um eine Datei aus dem aktuellen Verzeichnis in ein neues Verzeichnis zu verschieben -
Verwendung der Methode
renameTo()
zum Verschieben einer Datei aus dem aktuellen Verzeichnis in ein neues Verzeichnis
In diesem Tutorial werden verschiedene Möglichkeiten zum Verschieben einer Datei in Java vorgestellt. Wir werden die beiden Methoden kennenlernen, um eine Datei lokal (auf derselben Maschine) von einem Verzeichnis in ein anderes Verzeichnis zu verschieben.
Zu diesen Methoden gehören die Methode Files.move()
des Pakets Java NIO (New Input Output) und die Methode renameTo()
, die im Paket Java.io.File enthalten ist.
Verwenden Sie die Files.move()
-Methode von Java NIO, um eine Datei aus dem aktuellen Verzeichnis in ein neues Verzeichnis zu verschieben
Wir können die folgende Lösung verwenden, wenn wir Java 7 oder höher haben.
Beispielcode:
import java.io.IOException;
import java.nio.file.*;
public class MoveFile {
public static void main(String[] args) {
Path sourcePath = Paths.get("./moveFile.txt");
Path targetPath = Paths.get(System.getProperty("user.home") + "/Desktop/Files/moveFile.txt");
try {
Files.move(sourcePath, targetPath);
} catch (FileAlreadyExistsException ex) {
System.out.println("The target path already has a target file");
} catch (IOException exception) {
System.out.format("I/O error: %s%n", exception);
}
}
}
Die Methode main
benötigt den Quellpfad und den Zielpfad einer zu verschiebenden Datei. Wir verwenden die Methode Paths.get()
, um den Pfad der Quelldatei abzurufen und in einer Variablen vom Typ Path
mit dem Namen sourcePath
zu speichern.
Dann verwenden wir erneut die Methode Paths.get()
, um den Zielpfad zu erhalten, indem wir den gewünschten Speicherort und das Home-Verzeichnis des Benutzers verketten, auf das mit System.getProperty("user.home")
zugegriffen wird.
Die Methode Files.move()
nimmt den Quellpfad und den Zielpfad einer zu verschiebenden Datei und verschiebt sie vom sourcePath
zum targetPath
, ohne den Dateinamen zu ändern.
Die Methode Files.move()
ist im try
-Block eingeschlossen, da sie die IOException
oder FileAlreadyExistsException
verursachen kann. Diese Ausnahmen werden jedoch in den catch
-Blöcken richtig behandelt.
Wenn wir die FileAlreadyExistException
vermeiden wollen, dann können wir die Datei bei targetPath
ersetzen, indem wir die Option REPLACE_EXISTING
wie folgt verwenden:
Files.move(sourcePath, targetPath, StandardCopyOption.REPLACE_EXISTING);
Und wenn wir eine Datei mit einem neuen Namen bei targetPath
haben wollen, dann behalten wir sourcePath
und targetPath
gleich, ändern aber den Namen der Datei nur wie folgt:
Path sourcePath = Paths.get("./moveFile.txt");
Path targetPath = Paths.get(System.getProperty("user.home") + "/Desktop/Files/newMoveFile.txt");
Verwendung der Methode renameTo()
zum Verschieben einer Datei aus dem aktuellen Verzeichnis in ein neues Verzeichnis
Die folgende Lösung wird bevorzugt, wenn wir Java 6 haben.
Beispielcode:
import java.io.*;
public class MoveFile {
public static void main(String[] args) {
File file = new File(".\\moveFile.txt");
if (file.renameTo(new File("E:\\moveFile.txt"))) {
System.out.println("File is moved successfully");
} else {
System.out.println("File is not moved");
}
}
}
Dieses Code-Snippet verschiebt auch die angegebene Datei mit der Methode renameTo()
von einem Ort an einen anderen.
Die Methode renameTo()
nimmt einen neuen abstrakten Zielpfad, benennt die Datei um (wenn wir einen neuen Namen angeben, aber für diese Lösung nicht umbenennen) und verschiebt die Datei an den Zielort.
Es gibt true zurück, wenn die Datei erfolgreich verschoben wurde, und wir geben eine Nachricht aus, um anzuzeigen, dass die Datei verschoben wurde, und zeigen eine Warnung an, wenn die angegebene Datei nicht verschoben wird. Möglicherweise sehen Sie den oben angegebenen Code.