Java programma, lai izdzēstu tukšu un neiztukšotu direktoriju

Šajā piemērā mēs iemācīsimies Java izdzēst tukšu direktoriju, tukšu direktoriju un direktoriju ar tukšu apakšdirektoriju.

Lai saprastu šo piemēru, jums jāpārzina šādas Java programmēšanas tēmas:

  • Java failu klase
  • Java rekursija

1. piemērs: Java programma, lai izdzēstu tukšu direktoriju

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

Iepriekš minētajā piemērā mēs izmantojām klases delete()metodi, Filelai izdzēstu direktoriju ar direktoriju Directory .

Ja direktorija ir klāt, tiek parādīts ziņojums Directory Deleted . Pretējā gadījumā tiek parādīts katalogs Nav atrasts .

2. piemērs: izdzēsiet direktoriju, kas nav tukšs

Java, lai izdzēstu direktoriju, kas nav tukšs, vispirms jāizdzēš visi direktorijā esošie faili. Tad mēs varam izdzēst direktoriju.

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

Iepriekš minētajā piemērā mēs esam izmantojuši for-eachcilpu, lai izdzēstu visus direktorijā esošos failus. Kad visi faili ir izdzēsti, mēs izmantojām delete()metodi, lai izdzēstu direktoriju.

3. piemērs: rekurzīvi izdzēsiet direktoriju, kas nav tukšs

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

Pieņemsim, ka mums ir tukšs direktorijs ar direktoriju Directory. Katalogā ir 2 faili ar nosaukumu faili1.txt un fails2.txt un tukša apakšdirektorija ar nosaukumu Apakškatalogs. Arī šajā apakšdirektorijā ir fails ar nosaukumu file11.txt.

Tagad, palaižot programmu, mēs iegūsim šādu izvadi.

 Katalogs file1.txt ir izdzēsts Katalogs file2.txt ir izdzēsts Katalogs Apakšdirektorijs fails11.txt ir izdzēsts Katalogs Apakšdirektorijs ir izdzēsts Katalogs tiek izdzēsts

Šeit vispirms tiek izdzēsti 2 faili, pēc tam rekursīvā funkcija izdzēš failus apakšdirektorijā. Kad apakškatalogs ir tukšs, tas tiek izdzēsts. Visbeidzot, direktorijs tiek izdzēsts.

Interesanti raksti...