如何删除Java中的目录内容?
枚举一个目录后,我现在需要删除所有的文件。
我用了:
final File[] files = outputFolder.listFiles(); files.delete(); 但是这并没有删除目录。
您必须为每个文件执行此操作:
 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(); } 
然后打电话
 deleteFolder(outputFolder); 
要删除有文件的文件夹,不需要循环或recursionsearch。 你可以直接使用:
 FileUtils.deleteDirectory(<File object of directory>); 
该function将删除文件夹及其中的所有文件。
简单的派:)
删除之前,所有文件必须从目录中删除。
有第三方库有很多常用工具,包括那些为你做的:
-   Apache commons-lang FileUtils.forceDelete(..)
-   番石榴 Files.deleteRecursively(..)
你不能删除一个数组! 这应该会更好:
 for (File f : files) f.delete(); 
但是,如果文件夹不是空的,它将不起作用。 对于这种情况,您将需要recursion下降到文件夹层次结构并删除所有内容。 是的,这是一个耻辱Java默认情况下不能这样做…
 您不能删除File数组。 正如所有其他答案build议,您必须删除每个单独的文件之前删除文件夹… 
 final File[] files = outputFolder.listFiles(); for (File f: files) f.delete(); outputFolder.delete(); 
这里有一个可能的解决scheme来解决没有图书馆的问题:
 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(); } 
使用FileUtils和FileUtils.deleteDirectory();
 for(File f : files) { f.delete(); } files.delete(); // will work