Déplacer le fichier du répertoire actuel vers un nouveau répertoire en Java
-
Utilisez la méthode
Files.move()
de Java NIO pour déplacer le fichier du répertoire actuel vers un nouveau répertoire -
Utilisez la méthode
renameTo()
pour déplacer un fichier du répertoire actuel vers un nouveau répertoire
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.