//【需求】删除一个带内容的目录
/*
*File类里面的delete()方法只能删除空文件夹(没子文件夹没内容的文件夹),对于有内容的文件夹是删不掉的。必须从内向外删除。
*且windows系统中,鼠标右键删除文件夹,其实也是从里往外删除,假设有个几十层嵌套的文件夹,那么右键删除会删好久,因为不断
*从内向外递归。
*
*从里往外删,需要深度遍历。
*/
package demo;
import java.io.File;
public class RemoveDirTest {
public static void main(String[] args) {
File dir = new File("d:\\demodir");
removeDir(dir);
}
public static void removeDir(File dir) {
File[] files = dir.listFiles();
for(int x = 0; x<files.length;x++){
if(files[x].isDirectory())//若是目录,那么递归,直接将该目录files[x]传入removeDir函数中
removeDir(files[x]);
else
System.out.println("file:"+files[x].delete());//不是目录,那就是文件,直接delete就可以删除
}
//到此是将文件夹中的文件全部删除,但是文件夹没有删除
System.out.println("dir:"+dir.delete());//直接将空文件夹删掉
}
}