feed twitter facebook LinkedIn facebook

Java » Borrar un directorio con Java

diciembre 28, 2008 por Víctor Cuervo 16 Comentarios Imprimir Imprimir

Para borrar un directorio en Java podemos utilizar el mismo código que para borrar un fichero.

Los pasos serían muy sencillos, ya que simplemente deberíamos de instanciar el objeto File y ejecutar el método .delete sobre el directorio.

  1.  
  2. String sDirectorio = "c:\\directorio";
  3. File f = new File(sDirectorio);
  4.  
  5. if (f.delete())
  6. System.out.println("El fichero " + sDirectorio + " ha sido borrado correctamente");
  7. else
  8. System.out.println("El fichero " + sDirectorio + " no se ha podido borrar");
  9.  

El inconveniente de este código es que solo funciona si el directorio sobre el que lo ejecutamos está vacío.

Es por ello que para borrar un directorio con Java deberemos de borrar cada uno de los ficheros y directorios que este contenga. Al poder almacenar otros directorios, el código debe de recorrer recursivamente el directorio para ir borrando todos los ficheros.

Para ello vamos a realizar un método que recorra los directorios, vaya borrando los ficheros del directorio y vaya entrando en los subdirectorios para hacer la misma operación.

  1.  
  2. public static void borrarDirectorio (File directorio){...}
  3.  

Lo primero que haremos en el método borrarDirectorio es recuperar la lista de ficheros del directorio mediante el método .listFiles(). Mediante un bucle for recorreremos los elementos del directorio

  1.  
  2. File[] ficheros = directorio.listFiles();
  3.  
  4. for (int x=0;x<ficheros.length;x++){...}
  5.  

Si el elemento es un directorio, lo sabemos mediante el método .isDirectory, volvemos a llamar al método borrarDirectorio y luego borramos el directorio. En caso contrario, simplemente borramos el fichero.

  1.  
  2. if (ficheros[x].isDirectory()) {
  3. borrarDirectorio(ficheros[x]);
  4. }
  5. ficheros[x].delete())
  6.  

En el programa principal instanciamos el directorio a borrar y llamamos al método borrarDirectorio. Una vez borrado el directorio, ejecutamos el método .delete() sobre el directorio, que ya estará vacío.

  1.  
  2. String sDirectorio = "c:\\prueba";
  3. File f = new File(sDirectorio);
  4.  
  5. borrarDirectorio(f);
  6.  
  7. if (f.delete())
  8. System.out.println("El directorio " + sDirectorio + " ha sido borrado correctamente");
  9. else
  10. System.out.println("El directorio " + sDirectorio + " no se ha podido borrar");
  11.  
Descargar el Codigo
Descargar el código
Error en el Codigo
Error en el código
tags: , , , , , , ,

Artículos relacionados:

16 comentarios »

RSS feed para los comentarios de esta entrada. TrackBack URI

1 2
  1. chuidiang
    diciembre 28, 2008 #

    Hola:

    Bienvenido de nuevo, hace mucho que no actualizabas el blog y ya te creía “perdido”.

    Se bueno.

  2. Jtux
    agosto 29, 2009 #

    Bien….Funciono…

  3. D@v!d
    enero 22, 2010 #

    Hey LO estaba buscando FUNCIONA de maravilla y sin librerias externas 100% recomendado. GRACIAS

  4. Trinity
    junio 18, 2010 #

    Excelente, no había encontrado esta respuesta en ningún lado. Está muy claro y muy completo. Gracias por ayudarnos con esta información.

  5. milerx
    septiembre 14, 2010 #

    gracias!

  6. lineadecodigo
    septiembre 20, 2010 #

    @Jtux, @D@v!d, @Trinity, @milerx,…

    Me alegro que les haya servido de ayuda. :-)

  7. Leonardo
    marzo 26, 2011 #

    Muchas gracias! funciona muy bien. Un algoritmo corto y efectivo, muy bien! Me salvaste!

  8. Víctor Cuervo
    marzo 26, 2011 #

    Gracias @Leonardo. :-D

  9. Andrea
    junio 13, 2012 #

    Hola me pueden ayudar: necesito un codigo para borrar, modificar y buscar
    este es mi codigo. se los agradeceria muchoo q me pudieran ayudar!!!!

    import java.util.Scanner;
    /*
    * To change this template, choose Tools | Templates
    * and open the template in the editor.
    */

    /**
    *
    * @author Andrea Izaguirre
    */
    public class prooyeectoo {

    /**
    * @param args the command line arguments
    */
    public static void main(String[] args) {
    Scanner leer = new Scanner(System.in);
    int op=0;

    imprimirmenu();
    op = leer.nextInt();

    switch (op)
    {
    case 1:
    Ingresar();
    break;

    case 2:
    Borrar();
    break;

    }

    }
    //Imprimir el menu
    public static void imprimirmenu()

    {
    System.out.println(” **********************”);
    System.out.println(” ** MENU AGENDA **”);
    System.out.println(” ** 1.Ingresar **”);
    System.out.println(” ** 2.Borrar **”);
    System.out.println(” ** 3.Buscar **”);
    System.out.println(” ** 4.Modificar **”);
    System.out.println(” ** 5.Salir **”);
    System.out.println(” **********************”);
    System.out.println(” “);
    System.out.print(” Ingrese una opcion: “);
    System.out.println(” “);

    }
    //Colocando las opciones
    public static void Ingresar(){

    {
    Scanner leer = new Scanner(System.in);
    String nom;
    String tel;
    String dir;
    String email;
    int op = 0;

    System.out.println(” “);
    System.out.println(“Nombre: “);
    nom=leer.nextLine();
    System.out.println(” “);
    System.out.println(“Telefono: “);
    tel=leer.nextLine();
    System.out.println(” “);
    System.out.println(“Direccion: “);
    dir=leer.nextLine();
    System.out.println(” “);
    System.out.println(“Correo Electronico: “);
    email=leer.nextLine();
    System.out.println(” “);

    //Opcion para Borrar
    public static void Borrar(){

    {

    }
    }
    }

  10. Miguel
    septiembre 4, 2012 #

    Una pregunta, hasta donde va a borrar, xq ya me paso que hice un ciclo para borrar y me acabo borrando todo mi proyecto.
    Gracias!!

1 2

Deja un comentario

XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

*