Java-program för att radera tom och icke-tom katalog

I det här exemplet lär vi oss att ta bort en tom katalog, en icke-tom katalog och en katalog med icke-tom underkatalog i Java.

För att förstå detta exempel bör du ha kunskap om följande Java-programmeringsämnen:

  • Java-filklass
  • Java-rekursion

Exempel 1: Java-program för att radera en tom katalog

 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 exemplet ovan har vi använt klassens delete()metod för Fileatt ta bort katalogen med namnet Katalog .

Här, om katalogen finns, visas meddelandet Katalog borttagen . Annars visas Directory not Found .

Exempel 2: Ta bort en katalog som inte är tom

För att radera en icke-tom katalog i Java måste vi först ta bort alla filer som finns i katalogen. Sedan kan vi ta bort katalogen.

 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 exemplet ovan har vi använt for-eachslingan för att ta bort alla filer som finns i katalogen. En gång har alla filer raderats, vi använde delete()metoden för att ta bort katalogen.

Exempel 3: Ta bort katalog som inte är tom 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(); ) ) )

Anta att vi har en icke-tom katalog som heter Directory. Katalogen innehåller två filer med namnet file1.txt och file2.txt och en icke-tom underkatalog med namnet underkatalog. Återigen innehåller underkatalogen en fil med namnet file11.txt.

Nu när vi kör programmet får vi följande utdata.

 Katalog file1.txt raderas Katalog file2.txt raderas Katalog Underkatalog fil11.txt raderas Katalog Underkatalog raderas Katalog raderas

Här raderas de första 2 filerna, sedan tar den rekursiva funktionen bort filerna i underkatalogen. När underkatalogen är tom tas den bort. Och slutligen raderas katalogen.

Intressanta artiklar...