Comment supprimer des fichiers et des répertoires en Java

Pour supprimer un fichier en Java, nous pouvons utiliser le delete() méthode de Files classer. Nous pouvons également utiliser le delete() sur un objet qui est une instance de File classer.

Exemple:



Suppression d'un fichier à l'aide de la classe Files

L'exemple de code ci-dessous montre comment supprimer un fichier avec Files classer:


import java.io.IOException; import java.nio.file.*; public class DeleteFile {
public static void main(String[] args) {
Path path = FileSystems.getDefault().getPath('./src/test/resources/newFile.txt');
try {

Files.delete(path);
} catch (NoSuchFileException x) {

System.err.format('%s: no such' + ' file or directory%n', path);
} catch (IOException x) {

System.err.println(x);
}
} }

Le code ci-dessus supprime un fichier nommé newFile.txt dans ./src/test/resources/ annuaire.

Le multiple catch() blocs attraperont toutes les erreurs générées lors de la suppression du fichier.




Suppression d'un fichier à l'aide de la classe de fichiers

Au lieu d'utiliser le delete() méthode sur le Files classe, nous pouvons également utiliser la classe delete() sur un objet qui est une instance de File classer.

Exemple:

import java.io.File; public class DeleteFile {
public static void main(String[] args) {
File myFile = new File('./src/test/resources/newFile.txt');
if (myFile.delete()) {

System.out.println('Deleted the file: ' + myFile.getName());
} else {

System.out.println('Failed to delete the file.');
}
} }


Supprimer un fichier s'il existe

Le code suivant utilise le deleteIfExists() méthode avant de supprimer un fichier.

import java.io.IOException; import java.nio.file.*; public class DeleteFile {
public static void main(String[] args) {
Path path = FileSystems.getDefault().getPath('./src/test/resources/newFile.txt');
try {

Files.deleteIfExists(path);
} catch (IOException x) {

System.err.println(x);
}
} }

Dans l'exemple de code ci-dessus, si le fichier n'existe pas, le NoSuchFileException n'est pas jeté.




Supprimer un annuaire

Nous pouvons également utiliser le code ci-dessus pour supprimer un dossier.

Si le dossier n'est pas vide a DirectoryNotEmptyException est lancée, nous devons donc intercepter explicitement l'exception.

import java.io.IOException; import java.nio.file.*; public class DeleteFile {
public static void main(String[] args) {
Path path = FileSystems.getDefault().getPath('./src/test/resources');
try {

Files.deleteIfExists(path);
} catch (NoSuchFileException x) {

System.err.format('%s: no such' + ' file or directory%n', path);
} catch (DirectoryNotEmptyException x) {

System.err.format('%s not empty%n', path);
} catch (IOException x) {

System.err.println(x);
}
} }

En rapport: