Déplacer le fichier du répertoire actuel vers un nouveau répertoire en Java

Mehvish Ashiq 12 octobre 2023
  1. Utilisez la méthode Files.move() de Java NIO pour déplacer le fichier du répertoire actuel vers un nouveau répertoire
  2. Utilisez la méthode renameTo() pour déplacer un fichier du répertoire actuel vers un nouveau répertoire
Déplacer le fichier du répertoire actuel vers un nouveau répertoire en Java

Ce tutoriel présente différentes manières de déplacer un fichier en Java. Nous allons découvrir les deux méthodes pour déplacer un fichier d’un répertoire à un autre en local (sur la même machine).

Ces méthodes incluent la méthode Files.move() du package Java NIO (New Input Output) et la méthode renameTo() contenue dans le package Java.io.File.

Utilisez la méthode Files.move() de Java NIO pour déplacer le fichier du répertoire actuel vers un nouveau répertoire

Nous pouvons utiliser la solution suivante si nous avons Java 7 ou supérieur.

Exemple de code :

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);
    }
  }
}

La méthode main nécessite le chemin source et le chemin cible pour un fichier qui doit être déplacé. Nous utilisons la méthode Paths.get() pour récupérer le chemin du fichier source et l’enregistrer dans une variable de type Path nommée sourcePath.

Ensuite, nous utilisons à nouveau la méthode Paths.get() pour obtenir le chemin cible en concaténant l’emplacement souhaité et le répertoire personnel de l’utilisateur, auquel on accède en utilisant le System.getProperty("user.home").

La méthode Files.move() prend le chemin source et le chemin cible d’un fichier qui doit être déplacé et le déplace du sourcePath vers le targetPath sans changer le nom du fichier.

La méthode Files.move() est incluse dans le bloc try car elle peut provoquer l’exception IOException ou FileAlreadyExistsException. Cependant, ces exceptions sont correctement gérées dans les blocs catch.

Si nous voulons éviter l’exception FileAlreadyExistException, nous pouvons remplacer le fichier à targetPath en utilisant l’option REPLACE_EXISTING comme suit :

Files.move(sourcePath, targetPath, StandardCopyOption.REPLACE_EXISTING);

Et si nous voulons avoir un fichier avec un nouveau nom à targetPath, alors nous garderons le sourcePath et targetPath identiques mais changerons le nom du fichier uniquement comme suit:

Path sourcePath = Paths.get("./moveFile.txt");
Path targetPath = Paths.get(System.getProperty("user.home") + "/Desktop/Files/newMoveFile.txt");

Utilisez la méthode renameTo() pour déplacer un fichier du répertoire actuel vers un nouveau répertoire

La solution suivante est préférée si nous avons Java 6.

Exemple de code :

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");
    }
  }
}

Cet extrait de code déplace également le fichier spécifié d’un emplacement à un autre à l’aide de la méthode renameTo().

La méthode renameTo() prend un nouveau chemin de destination abstrait, renomme le fichier (si nous spécifions un nouveau nom mais ne le renommons pas pour cette solution) et déplace le fichier vers l’emplacement cible.

Il renvoie vrai si le fichier est déplacé avec succès, et nous imprimons un message pour montrer que le fichier est déplacé et afficher un avertissement si le fichier donné n’est pas déplacé. Vous pouvez voir le code donné ci-dessus.

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

Article connexe - Java File