递归删除非空文件夹

`

public class Test1 {
public static void main(String[] args) throws Exception {
    File f=new File("e:/haha");
    deleDir(f);
    System.out.println("删除成功!");
}

private static void deleDir(File f) {
    //1、判断Dir是文件夹
    if (f!=null||f.exists()&&f.isDirectory()){
        //2、提取一级文件对象
        File[] files=f.listFiles();
        //3、判断是否存在一级对象,存在则遍历全部的一级文件对象去删除
        if (files!=null&&files.length>0){
            //里面存在
            for (File file : files) {
                //如果是文件,则直接删除
                if (file.isFile()){
                    file.delete();
                }else {
                    //递归删除
                    deleDir(file);
                }
            }
        }
       //不能忘记还要把“自己”给删除
        f.delete();
    }
}

}
`

只是为了去加强递归算法的使用,因为文件是无法删除非空文件夹的,
但是如果使用IO框架的话,直接导入commons-io的jar包,一行就能删除文件夹,例如:
FileUtils.deleteDirectory(new File("e:/新建文件夹"));

posted @ 2021-08-14 21:44  星星上的张优秀  阅读(81)  评论(0编辑  收藏  举报
Live2D