Program Java pentru a șterge directorul gol și non-gol

În acest exemplu, vom învăța să ștergem un director gol, un director ne-gol și un director cu subdirector ne-gol în Java.

Pentru a înțelege acest exemplu, ar trebui să aveți cunoștințele despre următoarele subiecte de programare Java:

  • Clasa de fișiere Java
  • Recursiune Java

Exemplul 1: Program Java pentru a șterge un director gol

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

În exemplul de mai sus, am folosit delete()metoda Fileclasei pentru a șterge directorul numit Director .

Aici, dacă directorul este prezent, este afișat mesajul Director șters . În caz contrar, este afișat Directory not Found .

Exemplul 2: Ștergeți un director care nu este gol

În Java, pentru a șterge un director care nu este gol, trebuie mai întâi să ștergem toate fișierele prezente în director. Apoi, putem șterge directorul.

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

În exemplul de mai sus, am folosit for-eachbucla pentru a șterge toate fișierele prezente în director. Odată ce toate fișierele au fost șterse, am folosit delete()metoda pentru a șterge directorul.

Exemplul 3: Ștergeți recursiv directorul ne-gol

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

Aici, să presupunem că avem un director ne-gol, numit Director. Directorul conține 2 fișiere denumite file1.txt și file2.txt și un subdirector ne-gol denumit Subdirectory. Din nou, subdirectorul conține un fișier numit file11.txt.

Acum, când rulăm programul, vom obține următoarea ieșire.

 Directory file1.txt este șters Directory file2.txt este șters Directory Subdirectory file11.txt este șters Directory Subdirectory este șters Directorul este șters

Aici, primele 2 fișiere sunt șterse, apoi funcția recursivă șterge fișierele din subdirector. Odată ce subdirectorul este gol, este șters. Și, în cele din urmă, Directorul este șters.

Articole interesante...