Program Java do usuwania pustego i niepustego katalogu

W tym przykładzie nauczymy się usuwać pusty katalog, niepusty katalog i katalog z niepustym podkatalogiem w Javie.

Aby zrozumieć ten przykład, należy znać następujące tematy dotyczące programowania w języku Java:

  • Klasa plików Java
  • Rekursja Java

Przykład 1: Program Java do usuwania pustego katalogu

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

W powyższym przykładzie użyliśmy delete()metody Fileklasy do usunięcia katalogu o nazwie Directory .

Tutaj, jeśli katalog jest obecny, pojawi się komunikat Usunięto katalog . W przeciwnym razie wyświetlany jest komunikat Nie znaleziono katalogu .

Przykład 2: Usuń niepusty katalog

W Javie, aby usunąć niepusty katalog, musimy najpierw usunąć wszystkie pliki obecne w katalogu. Następnie możemy usunąć katalog.

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

W powyższym przykładzie użyliśmy for-eachpętli do usunięcia wszystkich plików znajdujących się w katalogu. Kiedyś wszystkie pliki zostały usunięte, użyliśmy delete()metody do usunięcia katalogu.

Przykład 3: Rekurencyjne usuwanie niepustego katalogu

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

Tutaj załóżmy, że mamy niepusty katalog o nazwie Directory. Katalog zawiera 2 pliki o nazwach plik1.txt i plik2.txt oraz niepusty podkatalog o nazwie Subdirectory. Ponownie podkatalog zawiera plik o nazwie plik11.txt.

Teraz, kiedy uruchomimy program, otrzymamy następujące dane wyjściowe.

 Katalog plik1.txt został usunięty Katalog plik2.txt został usunięty Katalog Subdirectory file11.txt został usunięty Katalog Subdirectory został usunięty Katalog został usunięty

W tym przypadku pierwsze 2 pliki są usuwane, a następnie funkcja rekurencyjna usuwa pliki w podkatalogu. Gdy podkatalog jest pusty, jest usuwany. Wreszcie katalog jest usuwany.

Interesujące artykuły...