Java-program til at slette tom og ikke-tom mappe

I dette eksempel lærer vi at slette en tom mappe, en ikke-tom mappe og en mappe med ikke-tom underkatalog i Java.

For at forstå dette eksempel skal du have kendskab til følgende Java-programmeringsemner:

  • Java-filklasse
  • Java-rekursion

Eksempel 1: Java-program til at slette en tom mappe

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

I ovenstående eksempel har vi brugt delete()metoden i Fileklassen til at slette mappen, der hedder Directory .

Her, hvis biblioteket er til stede, vises meddelelsen Directory Slettet . Ellers vises Directory not Found .

Eksempel 2: Slet en ikke-tom mappe

For at slette en ikke-tom mappe i Java skal vi først slette alle de filer, der findes i biblioteket. Derefter kan vi slette biblioteket.

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

I ovenstående eksempel har vi brugt for-eachsløjfen til at slette alle de filer, der findes i biblioteket. Når alle filer er slettet, brugte vi delete()metoden til at slette biblioteket.

Eksempel 3: Slet ikke-tom mappe rekursivt

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

Antag her, at vi har en ikke-tom mappe ved navn Directory. Kataloget indeholder 2 filer med navnet file1.txt og file2.txt og en ikke-tom underkatalog, der hedder underkatalog. Igen indeholder underkatalogen en fil med navnet file11.txt.

Nu, når vi kører programmet, får vi følgende output.

 Directory file1.txt slettes Directory file2.txt er slettet Directory Underkatalog file11.txt slettes Katalog Underkatalog slettes Katalog slettes

Her slettes de første 2 filer, derefter slettes den rekursive funktion filerne i underkatalogen. Når underkatalogen er tom, slettes den. Og endelig slettes telefonbogen.

Interessante artikler...