Programme Java pour supprimer les répertoires vides et non vides

Dans cet exemple, nous allons apprendre à supprimer un répertoire vide, un répertoire non vide et un répertoire avec un sous-répertoire non vide en Java.

Pour comprendre cet exemple, vous devez avoir la connaissance des rubriques de programmation Java suivantes:

  • Classe de fichier Java
  • Récursivité Java

Exemple 1: programme Java pour supprimer un répertoire vide

 import java.io.File; class Main ( public static void main(String() args) ( try ( // create a new file object File directory = new File("Directory"); // delete the directory boolean result = directory.delete(); if(result) ( System.out.println("Directory Deleted"); ) else ( System.out.println("Directory not Found"); ) ) catch (Exception e) ( e.getStackTrace(); ) ) )

Dans l'exemple ci-dessus, nous avons utilisé la delete()méthode de la Fileclasse pour supprimer le répertoire nommé Directory .

Ici, si le répertoire est présent, le message Répertoire supprimé est affiché. Sinon, Directory not Found s'affiche.

Exemple 2: supprimer un répertoire non vide

En Java, pour supprimer un répertoire non vide, il faut d'abord supprimer tous les fichiers présents dans le répertoire. Ensuite, nous pouvons supprimer le répertoire.

 import java.io.File; class Main ( public static void main(String() args) ( try ( // create a new file object File directory = new File("Directory"); // list all the files in an array File() files = directory.listFiles(); // delete each file from the directory for(File file : files) ( System.out.println(file + " deleted."); file.delete(); ) // delete the directory if(directory.delete()) ( System.out.println("Directory Deleted"); ) else ( System.out.println("Directory not Found"); ) ) catch (Exception e) ( e.getStackTrace(); ) ) )

Dans l'exemple ci-dessus, nous avons utilisé la for-eachboucle pour supprimer tous les fichiers présents dans le répertoire. Une fois que tous les fichiers sont supprimés, nous avons utilisé la delete()méthode pour supprimer le répertoire.

Exemple 3: Supprimer le répertoire non vide de manière récursive

 import java.io.File; class Main ( public static void deleteDirectory(File directory) ( // if the file is directory or not if(directory.isDirectory()) ( File() files = directory.listFiles(); // if the directory contains any file if(files != null) ( for(File file : files) ( // recursive call if the subdirectory is non-empty deleteDirectory(file); ) ) ) if(directory.delete()) ( System.out.println(directory + " is deleted"); ) else ( System.out.println("Directory not deleted"); ) ) public static void main(String() args) ( try ( // create a new file object File directory = new File("Directory"); Main.deleteDirectory(directory); ) catch (Exception e) ( e.getStackTrace(); ) ) )

Ici, supposons que nous ayons un répertoire non vide nommé Directory. Le répertoire contient 2 fichiers nommés file1.txt et file2.txt et un sous-répertoire non vide nommé Subdirectory. Là encore, le sous-répertoire contient un fichier nommé file11.txt.

Maintenant, lorsque nous exécuterons le programme, nous obtiendrons la sortie suivante.

 Le répertoire file1.txt est supprimé Le répertoire file2.txt est supprimé Le répertoire Sous-répertoire file11.txt est supprimé Le répertoire Le sous-répertoire est supprimé Le répertoire est supprimé

Ici, les 2 premiers fichiers sont supprimés, puis la fonction récursive supprime les fichiers dans le sous-répertoire. Une fois, le sous-répertoire est vide, il est supprimé. Et, finalement, le répertoire est supprimé.

Articles intéressants...