Programa Java para eliminar directorios vacíos y no vacíos

En este ejemplo, aprenderemos a eliminar un directorio vacío, un directorio no vacío y un directorio con subdirectorio no vacío en Java.

Para comprender este ejemplo, debe tener el conocimiento de los siguientes temas de programación de Java:

  • Clase de archivo Java
  • Recursión de Java

Ejemplo 1: programa Java para eliminar un directorio vacío

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

En el ejemplo anterior, hemos utilizado el delete()método de la Fileclase para eliminar el directorio llamado Directory .

Aquí, si el directorio está presente, se muestra el mensaje Directorio eliminado . De lo contrario, se muestra Directorio no encontrado .

Ejemplo 2: eliminar un directorio que no esté vacío

En Java, para eliminar un directorio no vacío, primero debemos eliminar todos los archivos presentes en el directorio. Luego, podemos eliminar el directorio.

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

En el ejemplo anterior, hemos utilizado el for-eachbucle para eliminar todos los archivos presentes en el directorio. Una vez que se eliminan todos los archivos, usamos el delete()método para eliminar el directorio.

Ejemplo 3: eliminar directorio no vacío de forma recursiva

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

Aquí, suponga que tenemos un directorio no vacío llamado Directory. El directorio contiene 2 archivos denominados file1.txt y file2.txt y un subdirectorio no vacío llamado Subdirectory. Nuevamente, el subdirectorio contiene un archivo llamado file11.txt.

Ahora, cuando ejecutemos el programa, obtendremos el siguiente resultado.

 Se elimina el directorio file1.txt Se elimina el directorio file2.txt Se elimina el directorio Subdirectorio file11.txt Se elimina el directorio subdirectorio Se elimina el directorio

Aquí, los primeros 2 archivos se eliminan, luego la función recursiva elimina los archivos dentro del Subdirectorio. Una vez que el subdirectorio está vacío, se elimina. Y finalmente se borra el directorio.

Articulos interesantes...