扫描删除文件夹问题

/*练习:删除某个有很多层子目录的目录(递归)

 

提示:多级目录,只能先删儿子,再删老子

我们递归扫描的过程中,先删除所有的文件,如果是文件夹,只能递归进入,再次扫描。

再删除父目录*/

public class Work4 {

public static void main(String[] args) {

    Filef=new File("F:\\javabase");

    scanFolder(f);

}

 

private static void scanFolder(File f) {

//  健壮性判断

    if(f.isFile())

    { throw new RuntimeException("兄弟,要传文件夹哦");}

    File[]l = f.listFiles();

    for(File i : l)

    {

        if(i.isFile())

        {

            i.delete();

        }

        else

        {

            scanFolder(i);//如果是文件夹,便继续搜索

            //如果是文件夹就将这个文件夹当做父目录传个扫描的函数,所以就可以通过f.delete()来删除了

//          i.delete();//搜索完毕,将文件夹删除

        }

    }

    f.delete();//因为每次循环都是将整个循环进行到底,如果到了最底层就会运行到当前命令了

}

}

猜你喜欢

转载自blog.csdn.net/wkfyynh/article/details/53106368