203 votes

Renommer un fichier en utilisant Java

Peut-on renommer un fichier en disant test.txt a test1.txt ?

Si test1.txt existe-t-il, sera-t-il renommé ?

Comment puis-je le renommer dans le fichier test1.txt déjà existant afin que le nouveau contenu de test.txt y soit ajouté pour une utilisation ultérieure ?

200voto

Pierre Points 15256

Copié de http://exampledepot.8waytrips.com/egs/java.io/RenameFile.html

// File (or directory) with old name
File file = new File("oldname");

// File (or directory) with new name
File file2 = new File("newname");

if (file2.exists())
   throw new java.io.IOException("file exists");

// Rename file (or directory)
boolean success = file.renameTo(file2);

if (!success) {
   // File was not successfully renamed
}

Pour ajouter au nouveau fichier :

java.io.FileWriter out= new java.io.FileWriter(file2, true /*append=yes*/);

146voto

user3043044 Points 71

En bref :

Files.move(source, source.resolveSibling("newname"));

Plus de détails :

import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardCopyOption;

Ce qui suit est copié directement de http://docs.oracle.com/javase/7/docs/api/index.html :

Supposons que nous voulions renommer un fichier en "nouveau nom", en conservant le fichier dans le même répertoire :

Path source = Paths.get("path/here");
Files.move(source, source.resolveSibling("newname"));

Supposons également que nous voulions déplacer un fichier vers un nouveau répertoire, en conservant le même nom de fichier et en remplaçant tout fichier existant de ce nom dans le répertoire :

Path source = Paths.get("from/path");
Path newdir = Paths.get("to/path");
Files.move(source, newdir.resolve(source.getFileName()), StandardCopyOption.REPLACE_EXISTING);

32voto

Thomas Owens Points 45042

Vous voulez utiliser le renommer à sur un Fichier objet.

Tout d'abord, créez un objet File pour représenter la destination. Vérifiez si ce fichier existe. S'il n'existe pas, créez un nouvel objet File pour le fichier à déplacer. Appelez la méthode renameTo sur le fichier à déplacer, et vérifiez la valeur renvoyée par renameTo pour voir si l'appel a réussi.

Si vous souhaitez ajouter le contenu d'un fichier à un autre, il existe un certain nombre de graveurs. D'après l'extension, on dirait qu'il s'agit de texte brut, donc je me pencherais sur le fichier Éditeur de fichiers .

30voto

Zoltán Points 2915

Pour Java 1.6 et inférieur, je pense que l'API la plus sûre et la plus propre pour cela est l'API de Guava Fichiers.move .

Exemple :

File newFile = new File(oldFile.getParent(), "new-file-name.txt");
Files.move(oldFile.toPath(), newFile.toPath());

La première ligne permet de s'assurer que l'emplacement du nouveau fichier est le même répertoire, c'est-à-dire que l'adresse de l'utilisateur est la même. répertoire parent de l'ancien fichier.

EDITAR: J'ai écrit ceci avant de commencer à utiliser Java 7, qui a introduit une approche très similaire. Donc si vous utilisez Java 7+, vous devriez voir et voter la réponse de kr37.

19voto

Branflake2267 Points 569

Renommer le fichier en le déplaçant vers un nouveau nom. (FileUtils est issu de la librairie Apache Commons IO lib)

  String newFilePath = oldFile.getAbsolutePath().replace(oldFile.getName(), "") + newName;
  File newFile = new File(newFilePath);

  try {
    FileUtils.moveFile(oldFile, newFile);
  } catch (IOException e) {
    e.printStackTrace();
  }

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X