txt studio mover linea eliminar directorios directorio copiar contenido con como carpeta borrar binario archivos archivo java file-io delete-directory

studio - ¿Cómo eliminar el contenido del directorio en Java?



mover archivos de carpeta java (8)

¡No puedes eliminar en una matriz! Esto debería funcionar mejor:

for (File f : files) f.delete();

Pero no funcionará si las carpetas no están vacías. Para estos casos, deberá descender recursivamente a la jerarquía de carpetas y eliminar todo. Sí, es una pena que Java no pueda hacer eso por defecto ...

Esta pregunta ya tiene una respuesta aquí:

Después de enumerar un directorio, ahora necesito eliminar todos los archivos.

Solía:

final File[] files = outputFolder.listFiles(); files.delete();

Pero esto no ha eliminado el directorio.


Aquí hay una posible solución para resolver el problema sin una biblioteca:

public static boolean delete(File file) { File[] flist = null; if(file == null){ return false; } if (file.isFile()) { return file.delete(); } if (!file.isDirectory()) { return false; } flist = file.listFiles(); if (flist != null && flist.length > 0) { for (File f : flist) { if (!delete(f)) { return false; } } } return file.delete(); }


No puede eliminar una matriz de File . Como sugieren todas las demás respuestas, debe eliminar cada archivo individual antes de eliminar la carpeta ...

final File[] files = outputFolder.listFiles(); for (File f: files) f.delete(); outputFolder.delete();


Para eliminar la carpeta que tiene archivos, no hay necesidad de bucles o búsqueda recursiva. Puede usar directamente:

FileUtils.deleteDirectory(<File object of directory>);

Esta función eliminará la carpeta y todos los archivos en ella.

Pastel fácil :)


Tienes que hacer esto para cada archivo:

public static void deleteFolder(File folder) { File[] files = folder.listFiles(); if(files!=null) { //some JVMs return null for empty dirs for(File f: files) { if(f.isDirectory()) { deleteFolder(f); } else { f.delete(); } } } folder.delete(); }

Luego llame

deleteFolder(outputFolder);



Use FileUtils con FileUtils.deleteDirectory ();


for(File f : files) { f.delete(); } files.delete(); // will work