Програма Java для видалення порожнього та непорожнього каталогу

У цьому прикладі ми навчимося видаляти порожній каталог, непустий каталог та каталог із непустим підкаталогом на Java.

Щоб зрозуміти цей приклад, ви повинні знати такі теми програмування Java:

  • Клас файлу Java
  • Рекурсія Java

Приклад 1: Програма Java для видалення порожнього каталогу

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

У наведеному вище прикладі ми використовували delete()метод Fileкласу для видалення каталогу з назвою Directory .

Тут, якщо каталог присутній, відображається повідомлення Каталог видалено . В іншому випадку відображається Каталог не знайдений .

Приклад 2: Видаліть непустий каталог

У Java, щоб видалити непустий каталог, спочатку потрібно видалити всі файли, що знаходяться в каталозі. Потім ми можемо видалити каталог.

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

У наведеному вище прикладі ми використовували for-eachцикл для видалення всіх файлів, що знаходяться в каталозі. Після того, як усі файли видалено, ми використали delete()метод для видалення каталогу.

Приклад 3: Видалити непустий каталог рекурсивно

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

Тут, припустимо, у нас є не порожній каталог з назвою Directory. Каталог містить 2 файли з іменами file1.txt та file2.txt та непустий підкаталог з назвою Subdirectory. Знову ж таки, підкаталог містить файл з іменем file11.txt.

Тепер, коли ми запустимо програму, ми отримаємо наступний результат.

 Каталог file1.txt видаляється Каталог file2.txt видаляється Каталог Підкаталог file11.txt видаляється Каталог Підкаталог видаляється Каталог видаляється

Тут спочатку видаляються 2 файли, потім рекурсивна функція видаляє файли всередині підкаталогу. Коли підкаталог порожній, його видаляють. І, нарешті, Каталог видаляється.

Цікаві статті...