У цьому прикладі ми навчимося видаляти порожній каталог, непустий каталог та каталог із непустим підкаталогом на 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 файли, потім рекурсивна функція видаляє файли всередині підкаталогу. Коли підкаталог порожній, його видаляють. І, нарешті, Каталог видаляється.