Datei vom aktuellen Verzeichnis in ein neues Verzeichnis in Java verschieben

Mehvish Ashiq 12 Oktober 2023
  1. Verwenden Sie die Files.move()-Methode von Java NIO, um eine Datei aus dem aktuellen Verzeichnis in ein neues Verzeichnis zu verschieben
  2. Verwendung der Methode renameTo() zum Verschieben einer Datei aus dem aktuellen Verzeichnis in ein neues Verzeichnis
Datei vom aktuellen Verzeichnis in ein neues Verzeichnis in Java verschieben

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.

Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook

Verwandter Artikel - Java File