Java-programma om lege en niet-lege mappen te verwijderen

In dit voorbeeld zullen we leren om een ​​lege map, een niet-lege map en een map met een niet-lege submap in Java te verwijderen.

Om dit voorbeeld te begrijpen, moet u kennis hebben van de volgende Java-programmeeronderwerpen:

  • Java-bestandsklasse
  • Java-recursie

Voorbeeld 1: Java-programma om een ​​lege map te verwijderen

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

In het bovenstaande voorbeeld hebben we de delete()methode van de Fileklasse gebruikt om de directory met de naam Directory te verwijderen .

Hier, als de directory aanwezig is, wordt het bericht Directory Deleted weergegeven. Anders wordt Directory niet gevonden weergegeven.

Voorbeeld 2: verwijder een niet-lege map

Om in Java een niet-lege map te verwijderen, moeten we eerst alle bestanden in de map verwijderen. Vervolgens kunnen we de directory verwijderen.

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

In het bovenstaande voorbeeld hebben we de for-eachlus gebruikt om alle bestanden in de directory te verwijderen. Zodra alle bestanden zijn verwijderd, hebben we de delete()methode gebruikt om de map te verwijderen.

Voorbeeld 3: verwijder niet-lege map recursief

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

Stel dat we hier een niet-lege map hebben met de naam Directory. De directory bevat 2 bestanden genaamd file1.txt en file2.txt en een niet-lege subdirectory genaamd Subdirectory. Nogmaals, de submap bevat een bestand met de naam file11.txt.

Als we het programma nu uitvoeren, krijgen we de volgende uitvoer.

 Directory file1.txt is verwijderd Directory file2.txt is verwijderd Directory Subdirectory file11.txt is verwijderd Directory Subdirectory is verwijderd Directory is verwijderd

Hier worden eerst 2 bestanden verwijderd, daarna verwijdert de recursieve functie de bestanden in de submap. Als de submap eenmaal leeg is, wordt deze verwijderd. En ten slotte wordt de directory verwijderd.

Interessante artikelen...