Renommer des fichiers en Java

La méthode renameTo() permet de renommer un fichier sous n'importe quel système d'exploitation comme windows par exemple. Elle retourne true si le fichier est renommé avec succès. Il faut toujours vérifier la valeur retournée pour être sure que le fichier a bien été renommé.

package com.codeurjava.File;

import java.io.File;

public class RenameFileJava {

    public static void main(String[] argv) {

      File ancien = new File("c:\\test\\ancienFichier.txt");
      File nouveau = new File("c:\\test\\nouveauFichier.txt");

      if(ancien.renameTo(nouveau))
         System.out.println("Le fichier "+ancien+" a bien été renommé.");
      else
         System.out.println("Echec! Le fichier "+ancien+" n'a pas pu être renommé.");
  
    }
}
Exécution:

Le fichier c:\test\ancienFichier.txt a bien été renommé.

Renommer plusieurs Fichiers avec une certaine extension

Le code suivant renomme une liste des fichiers appartenant à un répertoire. Dans cette exemple, c:\test\exemple est le répertoire, les fichiers sont renommés de cette façon: f1.txt, f2.txt,etc. Seulement les fichiers avec l'extension txt sont renommés.

package com.codeurjava.File;

import java.io.File;
import java.io.IOException;

public class RenameFilesJava {
 
    public static void main(String[] argv) throws IOException {

        File dossier = new File("c:\\test");
        File[] liste = dossier.listFiles();

        for (int i = 0; i < liste.length; i++) {

            if (liste[i].isFile()) { // si c'est un fichier
             
             //récupérer le fichier en cours
             File f = new File("c:\\test\\"+liste[i].getName()); 
             String extension = "";
             String ancien = liste[i].getName();
             
             //vérifier que l'extension est txt
             int index = ancien.lastIndexOf('.');
             if (index > 0) {
                 extension = ancien.substring(index+1);
             }
             if(extension.equals("txt")){
                 String nouveau = "f"+i+".txt";
                 f.renameTo(new File("c:\\test\\"+nouveau));
                 
                 System.out.println(ancien+" renommé => "+nouveau);
             }
             else{
              System.out.println(ancien+" n'est pas un fichier txt");
             }
            }
        }

        System.out.println("Opération terminée!");
    }
}
Exécution:

anc1.txt renommé => f0.txt
anc2.txt renommé => f1.txt
anc3.txt renommé => f2.txt
img_01.jpg n'est pas un fichier txt
table.sql n'est pas un fichier txt
Opération terminée!

Ressources:
https://docs.oracle.com/javase/7/docs/api/java/io/File.html#renameTo(java.io.File)
https://stackoverflow.com/questions/1158777/rename-a-file-using-java



Partager cet article

Voir aussi: