A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李鑫246 中级黑马   /  2016-9-22 21:56  /  811 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

学递归之后做练习题的时候要求递归删除多级文件和文件夹(运行一次),苦苦想了半天,结果出来的结果却如此简单,然后发现最后的结果一样但是过程不一样,传说中的野路子!!~分享了
定义方法如下:
private static void print(File f) {
        while (!f.delete()) {
                File[] arr = f.listFiles();
                for (File f1 : arr) {
                        print(f1);
                }
        }
正常思路的方法:
private static void delF(File file) {
                File[] f = file.listFiles();
                if (f == null) {
                        return;
                }
                for (File file2 : f) {
                        if (file2.isFile()) {
                                file2.delete();
                        } else if (file2.isDirectory()) {
                                delF(file2);
                        }
                }
                file.delete();
        }

3 个回复

倒序浏览
强,都没注意到delete的返回值

点评

谢谢,所以来这里分享了,我们几个人的结晶,也不知道怎么就想到这了......……^_^  发表于 2016-9-22 22:05
回复 使用道具 举报
{:2_31:}{:2_31:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马