Forzar Eliminar todos los archivos de una carpeta

He estado usando un fragmento de código específico para eliminar archivos de una carpeta, pero está resultando muy problemático porque quizás olvidé cerrar uno o dos InputStream. El código que tengo es tan grande que no puedo ver todos los Inputstreams que no he cerrado. ¿Hay una forma de eliminar archivos si hay un InputStream abierto o no?

Esta es la parte del código que he estado usando;

File fin = new File("C:/ABC Statements final/"); File[] finlist = fin.listFiles(); for (int n = 0; n < finlist.length; n++) { if (finlist[n].isFile()) { System.gc(); Thread.sleep(2000); finlist[n].delete(); } } 

He editado el código. Esta versión funciona.

No hay instancias de InputStream en el fragmento de código proporcionado.

Para no escribir muchos códigos de E / S no probados, eche un vistazo al proyecto apache.commons.io . Especialmente en la clase FileDeleteStrategy , para las operaciones de eliminación de archivos.

Tu código podría verse así:

 File fin = new File("C:/ABC Statements final/"); for (File file : fin.listFiles()) { FileDeleteStrategy.FORCE.delete(file); } 

Puedes usar:

 FileUtils.deleteDirectory(File directory) 

de Apache Commons

Con Apache Commons IO:

 File dir = ... FileUtils.deleteQuietly(dir); dir.mkdirs(); 

No hay necesidad de verificar las excepciones de esta manera.

Utilizar:

  import org.apache.commons.io.FileUtils; FileUtils.cleanDirectory(fin); 

Docs:

  /** * Clean a directory without deleting it. * * @param directory directory to clean * @throws IOException in case cleaning is unsuccessful */ 

Para utilizarlo necesitas una dependencia:

Maven

  commons-io commons-io 2.6  

Gradle:

 compile 'commons-io:commons-io:2.6' 
 public void removeDir() { try { File dir = new File((System.getProperty("user.dir")+"/ReportFolderToMail"+timeStamp)); if (dir.isDirectory()) { File[] files = dir.listFiles(); if (files != null && files.length > 0) { for (File aFile : files) { System.gc(); Thread.sleep(2000); FileDeleteStrategy.FORCE.delete(aFile); System.out.println("delet file" +aFile); } } dir.delete(); System.out.println("delet" +dir); } else { dir.delete(); } } catch(Exception e) { e.printStackTrace(); } 
 public boolean removeDir() { try { //destFile = new File((System.getProperty("user.dir")+"/FileName")) // checks if the directory has any file File dir = destFile; if (dir.isDirectory()) { File[] files = dir.listFiles(); if (files != null && files.length > 0) { for (File aFile : files) { System.gc(); Thread.sleep(2000); FileDeleteStrategy.FORCE.delete(aFile); System.out.println("delet file" +aFile); } } dir.delete(); System.out.println("delet" +dir); } else { dir.delete(); } } catch(Exception e) { logger.log(LogStatus.FATAL, "Exception Occured While Deleting Folder : " +e); } return true; } 
    Intereting Posts