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("删除的目录文件不存在");

        }

    }



}

 

你可能感兴趣的:(java基础)