java基础知识回顾之javaIO类--File类应用:删除带内容的目录

/**
 * 深度删除一个带内容的目录
 * 原理:必须从里往外删除,需要深度遍历
 * @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("删除的目录文件不存在");
        }
    }

}
 
原文地址:https://www.cnblogs.com/200911/p/3886993.html