Program Java na odstranění prázdného a neprázdného adresáře

V tomto příkladu se naučíme mazat prázdný adresář, neprázdný adresář a adresář s neprázdným podadresářem v Javě.

Abychom porozuměli tomuto příkladu, měli byste znát následující programovací témata Java:

  • Třída souborů Java
  • Java rekurze

Příklad 1: Program Java pro odstranění prázdného adresáře

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

Ve výše uvedeném příkladu jsme použili delete()metodu Filetřídy k odstranění adresáře s názvem Directory .

Zde, pokud je adresář přítomen, zobrazí se zpráva Directory Deleted . Jinak se zobrazí adresář nebyl nalezen .

Příklad 2: Odstranění neprázdného adresáře

Chcete-li v Javě odstranit neprázdný adresář, musíme nejprve odstranit všechny soubory přítomné v adresáři. Poté můžeme adresář odstranit.

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

Ve výše uvedeném příkladu jsme pomocí for-eachsmyčky odstranili všechny soubory v adresáři. Jakmile jsou všechny soubory odstraněny, použili jsme delete()metodu k odstranění adresáře.

Příklad 3: Rekurzivně odstranit neprázdný adresář

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

Zde předpokládejme, že máme neprázdný adresář s názvem Directory. Adresář obsahuje 2 soubory s názvem file1.txt a file2.txt a neprázdný podadresář s názvem Podadresář. Podadresář opět obsahuje soubor s názvem file11.txt.

Nyní, když spustíme program, dostaneme následující výstup.

 Directory file1.txt is deleted Directory file2.txt is deleted Directory Subdirectory file11.txt is deleted Directory Subdirectory is deleted Directory is deleted

Zde jsou odstraněny první 2 soubory, poté rekurzivní funkce odstraní soubory uvnitř podadresáře. Jakmile je podadresář prázdný, bude odstraněn. A nakonec je adresář odstraněn.

Zajímavé články...