Program Java na odstránenie prázdneho a neprázdneho adresára

V tomto príklade sa naučíme mazať prázdny adresár, neprázdny adresár a adresár s neprázdnym podadresárom v Jave.

Aby ste pochopili tento príklad, mali by ste mať znalosti nasledujúcich tém programovania v jazyku Java:

  • Trieda súborov Java
  • Java rekurzia

Príklad 1: Program Java na odstránenie prázdneho adresára

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

Vo vyššie uvedenom príklade sme použili delete()metódu Filetriedy na odstránenie adresára s názvom Directory .

Ak je tu adresár, zobrazí sa správa Directory Deleted . V opačnom prípade sa zobrazí adresár nebol nájdený .

Príklad 2: Odstráňte neprázdny adresár

Ak chcete v Jave vymazať neprázdny adresár, musíte najskôr vymazať všetky súbory, ktoré sa v ňom nachádzajú. Potom môžeme adresár vymazať.

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

Vo vyššie uvedenom príklade sme pomocou for-eachslučky odstránili všetky súbory nachádzajúce sa v adresári. Po odstránení všetkých súborov sme použili delete()metódu na odstránenie adresára.

Príklad 3: Rekurzívne vymazanie neprázdneho adresára

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

Predpokladajme, že máme neprázdny adresár s názvom Directory. Adresár obsahuje 2 súbory s názvom file1.txt a file2.txt a neprázdny podadresár s názvom Podadresár. Podadresár opäť obsahuje súbor s názvom file11.txt.

Teraz, keď spustíme program, dostaneme nasledujúci výstup.

 Adresár file1.txt je odstránený Adresár file2.txt je odstránený Adresár Podadresár file11.txt je odstránený Adresár podadresár je odstránený Adresár je odstránený

Tu sa odstránia prvé 2 súbory, potom rekurzívna funkcia odstráni súbory vo vnútri podadresára. Ak je podadresár prázdny, vymaže sa. A nakoniec sa adresár vymaže.

Zaujímavé články...