/**
* 深度删除一个带内容的目录
* 原理:必须从里往外删除,需要深度遍历
* @author Administrator
*
*/
public class FileDeleteList { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
File dir = new File("E:\\复件 demodir");
removedir(dir);
}
/**
* 递归的从里向外删除文件盒目录
* @param dir
*/
private static void removedir(File dir) {
if(dir.exists()){
File[] files = dir.listFiles();
for(File file:files){
/* if(file.isDirectory()){//文件是目录继续遍历里面的目录,直到找到文件目录里面的文件
removedir(file);
}else{
System.out.println(file.getAbsolutePath()+file.delete());//删除目录里面的文件
}*/
if(file.isFile()){//是否是文件,是文件的话,直接删除
System.out.println(file.getAbsolutePath()+file.delete());//删除目录里面的文件
}else{
removedir(file);//不是文件,是目录,递归的遍历,直到是文件
}
}
System.out.println(dir.getAbsolutePath()+dir.delete());//删除目录从里向外删除
}else{
throw new RuntimeException("删除的目录文件不存在");
}
} }