Java - Supprimer un fichier

Cet article rapide explique comment supprimer un fichier en Java - en utilisant d'abord JDK 6, puis JDK 7 et enfin la bibliothèque Apache Commons IO.

Cet article fait partie de la série «Java - Back to Basic» ici sur Baeldung.

1. Avec Java - JDK 6

Commençons par la solution standard Java 6:

@Test public void givenUsingJDK6_whenDeletingAFile_thenCorrect() throws IOException { new File("src/test/resources/fileToDelete_jdk6.txt").createNewFile(); File fileToDelete = new File("src/test/resources/fileToDelete_jdk6.txt"); boolean success = fileToDelete.delete(); assertTrue(success); }

Comme vous pouvez le voir - le fichier doit exister avant l'opération de suppression ; si ce n'est pas le cas, l'API ne lèvera aucune exception mais retournera à la place false.

2. Avec Java - JDK 7

Passons à la solution JDK 7:

@Test public void givenUsingJDK7nio2_whenDeletingAFile_thenCorrect() throws IOException { Files.createFile(Paths.get("src/test/resources/fileToDelete_jdk7.txt")); Path fileToDeletePath = Paths.get("src/test/resources/fileToDelete_jdk7.txt"); Files.delete(fileToDeletePath); }

Maintenant, cela fera un meilleur usage des exceptions. Si le fichier n'existe pas lorsque l'opération de suppression est déclenchée, une NoSuchFileException sera lancée par l'API:

java.nio.file.NoSuchFileException: srctestresourcesfileToDelete_jdk7.txt at s.n.f.WindowsException.translateToIOException(WindowsException.java:79)

3. Avec Commons IO

Commons IO nous permet de contrôler le comportement des exceptions lors de la suppression d'un fichier. Pour une suppression silencieuse qui avale toutes les exceptions possibles:

@Test public void givenUsingCommonsIo_whenDeletingAFileV1_thenCorrect() throws IOException { FileUtils.touch(new File("src/test/resources/fileToDelete_commonsIo.txt")); File fileToDelete = FileUtils.getFile("src/test/resources/fileToDelete_commonsIo.txt"); boolean success = FileUtils.deleteQuietly(fileToDelete); assertTrue(success); }

Notez que nous pouvons toujours déterminer si l'opération a réussi ou non en vérifiant simplement la valeur de retour de la méthode de suppression.

Maintenant - si nous voulons qu'une exception soit levée:

@Test public void givenUsingCommonsIo_whenDeletingAFileV2_thenCorrect() throws IOException { FileUtils.touch(new File("src/test/resources/fileToDelete.txt")); FileUtils.forceDelete(FileUtils.getFile("src/test/resources/fileToDelete.txt")); }

Si le fichier à supprimer n'existe pas sur le système de fichiers, l'API lèvera une FileNotFoundException standard :

java.io.FileNotFoundException: File does not exist: srctestresourcesfileToDelete.txt at org.apache.commons.io.FileUtils.forceDelete(FileUtils.java:2275)

Et là vous l'avez - 4 façons simples de supprimer un fichier en Java.