/**
* 因为不小心,写了一个死循环,在电脑里创建的了n多层空文件夹
* 并且手动最外层删除不掉.
* 所以用写了本代码,从里向外的进行删除操作.
* @author Singularity
* @since 2019.1.21
*/
public class Dele {
//文件夹所嵌套的层数
public static int totalSize;
//计数器
public static int count;
//每次删除的数量 是100
public static int num = 0;
//每次删除的数量 是100
public static boolean first = true; public static void main(String[] args) {
File file = new File("E:\\111");
try {
long firstTime = System.currentTimeMillis();
while (true) {
//初始化计数器
count = 0;
totalSize = totalSize - 199;
//开始执行删除操作
delAll(file);
if (totalSize < 1) {
break;
}
}
long okTime = System.currentTimeMillis();
System.out.println("总共耗时:" + ((okTime - firstTime) / 1000) + "秒");
} catch (IOException e) {
e.printStackTrace();
}
} /**
* 删除文件夹下所有内容,包括此文件夹删除文件夹下所有内容,包括此文件夹
* @param f
* @throws IOException
*/
public static void delAll(File f) throws IOException {
File[] sub = f.listFiles();
//如果是第一次进来
if (first) {
if (sub != null && sub.length > 0) {
count++;
delAll(sub[0]);
} else {
totalSize = count;
first = false;
System.out.println("===总共有" + totalSize + "层文件夹===");
}
//及时清空,否则会出现栈内存溢出StackOverflowError
sub = null;
} else {
if (sub.length > 0) {
count++;
if (totalSize - count < 100) {
FileUtils.deleteDirectory(f);
System.out.println(">>>还有" + (count - 1) + "层文件夹没有删除");
}else {
delAll(sub[0]);
}
}
//及时清空,否则会出现堆内存溢出
sub = null;
}
}
}

java 删除多层文件夹的更多相关文章

  1. Xcodeproj相关以及删除 多层文件夹、库、资源逻辑

    一.介绍Xcodeproj是CocoaPods用ruby开发的一个插件库,可以用来新建.修改Xcode工程. 二.wiki和资源Xcodeproj wiki   :https://www.rubydo ...

  2. Java 删除当前文件夹及其文件夹下的全部文件

    删除文件夹2以下的全部文件及其文件夹 演示样例文件夹例如以下:D:/test/1/2 1.使用FileUtils类.静默删除 String url = "D:/test/1/2"; ...

  3. JAVA删除某个文件夹(递归删除文件夹的所有文件)

    /** * 递归删除文件夹下所有内容 最后删除该文件夹 * @param filePath 要删除的文件夹路径 * @return */ public boolean deleteFiles(Stri ...

  4. windows 删除多层文件夹

    眼下目录d:\clu_1下有99个目录,名字为0,1....99,每一个目录下又有25个目录,目录名为0,1,....24,其下其下又有以日期命名的目录(如20140521),最后是zip文件.如一个 ...

  5. java删除递归文件夹及文件夹下文件

    public static void delUrlLocalFile(String urlPath) { File file = new File(urlPath); if(file.isDirect ...

  6. java:多层文件夹情况下,判断文件夹下是否有文件夹,并获取到没有文件夹的名字的方法

    业务问题案例 在公司遇到的一个问题,本以为很小很好解决,没想到花了一下午时间.图给的是文件路径,page1下有10个文件夹,每个有的有文件夹或者文件,要求得到page1下(即:123456789,10 ...

  7. java基础 File与递归练习 使用文件过滤器筛选将指定文件夹下的小于200K的小文件获取并打印按层次打印(包括所有子文件夹的文件) 多层文件夹情况统计文件和文件夹的数量 统计已知类型的数量 未知类型的数量

    package com.swift.kuozhan; import java.io.File; import java.io.FileFilter; /*使用文件过滤器筛选将指定文件夹下的小于200K ...

  8. Java:<获取>、<删除>指定文件夹及里面所有文件

    工具类代码如下: 一.获取 public Class Test{ //定义全局变量,存放所有文件夹下的文档 List<String> fileList ; public List<S ...

  9. Java——如何创建文件夹及文件,删除文件,文件夹

    package com.zz; import java.io.File; import java.io.IOException; /** * Java创建文件夹 */ public class Cre ...

随机推荐

  1. python(列表2)

    1.remove(删除指定值的元素) x = ['to','be','or','not','to','be'] x.remove('be') x ['to','or','not','to','be'] ...

  2. css制作倒三角

    布局div,并命名为id="dropdown",在style使用border属性对div进行控制 #dropdown{ width:0px; height:0px; border- ...

  3. spring boot 连接多个数据源

    在springboot中有需要连接多个数据源的情况. 首先配置文件application.properties中添加两个数据源连接字符串 mybatis.type-aliases-package=co ...

  4. ECC算法软件保护中的应用

    椭圆曲线在软件注册保护的应用 我们知道将公开密钥算法作为软件注册算法的好处是Cracker很难通过跟踪验证算法得到注册机.下面,将简介一种利用Fp(a,b)椭圆曲线进行软件注册的方法. 软件作者按如下 ...

  5. AOP面向切面编程JAVA动态代理实现用户权限管理(实现篇)

    java动态代理机制的功能十分强大,使用动态代理技术能够有效的降低应用中各个对象之间的耦合紧密程度,提高开发的效率以及程序的可维护性,事实上Spring AOP就是建立在Java动态代理的基础之上.其 ...

  6. 1 实现添加功能 1.1 定义一个学员类(Student),在Student类中定义姓名、性别和年龄属性,定义有 参数的构造方法来初始化所以的成员属性 1.2 创建学员类对象来存放学员信息,并且为每一个学生对象添加的相应的编号。并将 学员类对象添加到Map<Integer,Student>集合中 1.3 添加完成后,显示所有已添加的学员姓名 1.4 限制年龄文本框只能输入正整数,否则的会采

    学生类 package com.lanxi.demo1_3; public class Student { private String name; private String sex; priva ...

  7. 手动增加swap空间

           在日常工作中,swap没有必要搞那么大的空间,因为现在好多服务器都使用了ssd硬盘,这些硬盘还是比较贵的.如果服务器内存是128G,swap空间还设置成内存的两倍的话,那岂不是很明显是很 ...

  8. 通过sqlalchemy操作mysql

    # 安装 pip3 install sqlalchemy import sqlalchemy from sqlalchemy import create_enginefrom sqlalchemy.e ...

  9. 常用MySQL操作(一)

    第二十四次课 常用MySQL操作(一) 目录 一.设置更改root密码 二.连接mysql 三.mysql常用命令 四.mysql用户管理 五.常用sql语句 六.mysql数据库备份恢复 七.扩展 ...

  10. 2018-2019-1 20165318 20165326 实验五 通讯协议设计.md

    目录 实验内容 问题及解决 参考资料 实验内容 任务一 在Ubuntu中完成作业 openSSL OpenSSL是一个SSL协议的开源实现,采用C语言作为开发语言,具备了跨平台的能力,支持Unix/L ...