Программа на 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 удален. Каталог Subdirectory file11.txt удален. Каталог Subdirectory удален. Каталог удален.

Здесь удаляются первые 2 файла, затем рекурсивная функция удаляет файлы внутри подкаталога. Когда подкаталог становится пустым, он удаляется. И, наконец, каталог удаляется.

Интересные статьи...