java 删除多层文件夹

 1 /**
 2  * 因为不小心,写了一个死循环,在电脑里创建的了n多层空文件夹
 3  * 并且手动最外层删除不掉.
 4  * 所以用写了本代码,从里向外的进行删除操作.
 5  * @author Singularity
 6  * @since 2019.1.21
 7  */
 8 public class Dele {
 9     //文件夹所嵌套的层数
10     public static int totalSize;
11     //计数器
12     public static int count;
13     //每次删除的数量  是100
14     public static int num = 0;
15     //每次删除的数量  是100
16     public static boolean first = true;
17 
18     public static void main(String[] args) {
19         File file = new File("E:\\111");
20         try {
21             long firstTime = System.currentTimeMillis();
22             while (true) {
23                 //初始化计数器
24                 count = 0;
25                 totalSize = totalSize - 199;
26                 //开始执行删除操作
27                 delAll(file);
28                 if (totalSize < 1) {
29                     break;
30                 }
31             }
32             long okTime = System.currentTimeMillis();
33             System.out.println("总共耗时:" + ((okTime - firstTime) / 1000) + "秒");
34         } catch (IOException e) {
35             e.printStackTrace();
36         }
37     }
38 
39     /**
40      * 删除文件夹下所有内容,包括此文件夹删除文件夹下所有内容,包括此文件夹
41      * @param f
42      * @throws IOException
43      */
44     public static void delAll(File f) throws IOException {
45         File[] sub = f.listFiles();
46         //如果是第一次进来
47         if (first) {
48             if (sub != null && sub.length > 0) {
49                 count++;
50                 delAll(sub[0]);
51             } else {
52                 totalSize = count;
53                 first = false;
54                 System.out.println("===总共有" + totalSize + "层文件夹===");
55             }
56             //及时清空,否则会出现栈内存溢出StackOverflowError
57             sub = null;
58         } else {
59             if (sub.length > 0) {
60                 count++;
61                 if (totalSize - count < 100) {
62                     FileUtils.deleteDirectory(f);
63                     System.out.println(">>>还有" + (count - 1) + "层文件夹没有删除");
64                 }else {
65                     delAll(sub[0]);
66                 }
67             }
68             //及时清空,否则会出现堆内存溢出
69             sub = null;
70         }
71     }
72 }
73  

 

转载于:https://www.cnblogs.com/Singulariity-gs/p/10531604.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值