Java-Programm zum Löschen von leeren und nicht leeren Verzeichnissen

In diesem Beispiel lernen wir, ein leeres Verzeichnis, ein nicht leeres Verzeichnis und ein Verzeichnis mit einem nicht leeren Unterverzeichnis in Java zu löschen.

Um dieses Beispiel zu verstehen, sollten Sie die folgenden Java-Programmierthemen kennen:

  • Java-Dateiklasse
  • Java-Rekursion

Beispiel 1: Java-Programm zum Löschen eines leeren Verzeichnisses

 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(); ) ) )

Im obigen Beispiel haben wir die delete()Methode der FileKlasse verwendet, um das Verzeichnis mit dem Namen Directory zu löschen .

Wenn das Verzeichnis vorhanden ist, wird hier die Meldung Verzeichnis gelöscht angezeigt. Andernfalls wird Verzeichnis nicht gefunden angezeigt.

Beispiel 2: Löschen Sie ein nicht leeres Verzeichnis

In Java müssen zum Löschen eines nicht leeren Verzeichnisses zunächst alle im Verzeichnis vorhandenen Dateien gelöscht werden. Dann können wir das Verzeichnis löschen.

 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(); ) ) )

Im obigen Beispiel haben wir die for-eachSchleife verwendet, um alle im Verzeichnis vorhandenen Dateien zu löschen. Sobald alle Dateien gelöscht sind, haben wir die delete()Methode verwendet, um das Verzeichnis zu löschen.

Beispiel 3: Nicht leeres Verzeichnis rekursiv löschen

 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(); ) ) )

Angenommen, wir haben ein nicht leeres Verzeichnis mit dem Namen Directory. Das Verzeichnis enthält zwei Dateien mit den Namen file1.txt und file2.txt sowie ein nicht leeres Unterverzeichnis mit dem Namen Subdirectory. Auch hier enthält das Unterverzeichnis eine Datei mit dem Namen file11.txt.

Wenn wir nun das Programm ausführen, erhalten wir die folgende Ausgabe.

 Verzeichnis file1.txt wird gelöscht Verzeichnis file2.txt wird gelöscht Verzeichnis Unterverzeichnis Datei11.txt wird gelöscht Verzeichnis Unterverzeichnis wird gelöscht Verzeichnis wird gelöscht

Hier werden zuerst 2 Dateien gelöscht, dann löscht die rekursive Funktion die Dateien im Unterverzeichnis. Sobald das Unterverzeichnis leer ist, wird es gelöscht. Und schließlich wird das Verzeichnis gelöscht.

Interessante Beiträge...