java 如何级联删除_Java学习-040-级联删除目录中的文件、目录

之前在写应用模块,进行单元测试编码的时候,居然脑洞大开居然创建了一个 N 层的目录,到后来删除测试结果目录的时候,才发现删除不了了,提示目录过长无法删除。网上找了一些方法,也找了一些粉碎机,都没能达到想要的结果,我就简写了一个小应用,用于删除自己脑洞大开创建的级联目录。此小应用没有代码注释,也没有进行容错处理,请大家知悉!哈哈哈哈哈。。。。。若发现有错误,也请告知,我会去修改订正,非常感谢!

闲话少述,直接上码了!

/**

* Aaron.ffp Inc.

* Copyright (c) 2004-2015 All Rights Reserved.

*/

package ffp;

import java.io.File;

/**

*

* @author Aaron.ffp

* @version V1.0.0: delDir ffp DelDir.java, 2015年12月31日 上午10:14:23 Exp $

*/

public class DelDir {

private static String msg = "";

/**

*

* @author Aaron.ffp

* @version V1.0.0: delDir ffp DelDir.java main, 2015年12月31日 上午10:14:23 Exp $

*

* @param args

*/

public static void main(String[] args) {

String rootDir = args[0];

String delRootDir = args[1];

try {

File root = new File(rootDir);

if (root.exists()) {

if (root.isFile()) {

root.delete();

return;

}

delFile(rootDir);

if ("delete".equals(delRootDir.toLowerCase())) {

root.delete();

}

}

} catch (Exception e) {

System.out.println(e.getMessage());

}

}

public static void delFile (String rootDir) {

String filename = "";

File[] fList = new File(rootDir).listFiles();

for (int i = 0; i < fList.length; i++) {

filename = fList[i].getPath();

if (fList[i].getPath().equals(rootDir) && (new File(rootDir).listFiles().length < 1)) {

return;

}

if (fList[i].isFile()) {

if (fList[i].delete()){

msg = "\n\n----------------- >> Successed to delete file \n{" + filename + "}";

System.out.println(msg);

}

}

if (fList[i].isDirectory()) {

if (fList[i].listFiles().length > 0) {

delFile(fList[i].getPath());

} else {

if(fList[i].delete()){

msg = "\n\n================= >> Successed to delete folder \n{" + filename + "}";

System.out.println(msg);

}

}

}

}

fList = new File(rootDir).listFiles();

if (fList.length > 0) {

delFile(rootDir);

}

}

}

将程序打包(例如打包为:cleanDirectory.jar),打开命令行,执行命令 :

java -jar cleanDirectory.jar "{要删除的根目录}" "delete"

第二个参数:是否删除根目录

至此,Java学习-040-级联删除目录中的文件、目录顺利完结,希望此文能够给初学 JavaWeb 的您一份参考。

最后,非常感谢亲的驻足,希望此文能对亲有所帮助。热烈欢迎亲一起探讨,共同进步。非常感谢! ^_^

python基础&colon;os模块中关于文件&sol;目录常用的函数使用方法

Python是跨平台的语言,也即是说同样的源代码在不同的操作系统不需要修改就可以同样实现 因此Python的作者就倒腾了OS模块这么一个玩意儿出来,有了OS模块,我们不需要关心什么操作系统下使用什么模 ...

os模块中关于文件&sol;目录常用的函数使用方法

os模块中关于文件/目录常用的函数使用方法 函数名 使用方法 getcwd() 返回当前工作目录 chdir(path) 改变工作目录 listdir(path='.') 列举指定目录中的文件名('. ...

18 os&sol;os&period;path模块中关于文件&sol;目录常用的函数使用方法 (转)

os模块中关于文件/目录常用的函数使用方法 函数名 使用方法 getcwd() 返回当前工作目录 chdir(path) 改变工作目录 listdir(path='.') 列举指定目录中的文件名('. ...

从&period;Net到Java学习第十篇——Spring Boot文件上传和下载

从.Net到Java学习系列目录 图片上传 Spring Boot中的文件上传就是Spring MVC中的文件上传,将其集成进来了. 在模板目录创建一个新的页面 profile/uploadPage. ...

java学习笔记16--I&sol;O流和文件

本文地址:http://www.cnblogs.com/archimedes/p/java-study-note16.html,转载请注明源地址. IO(Input  Output)流 IO流用来处理 ...

java学习笔记之IO编程—File文件操作类

1. File类说明 在Java语言里面提供有对于文件操作系统操作的支持,而这个支持就在java.io.File类中进行了定义,也就是说在整个java.io包里面,File类是唯一一个与文件本身操作( ...

【python系统学习17】python中的文件读写

python中的文件读写 文件读写,是Python代码调用电脑文件的主要功能,能被用于读取和写入文本.音频片段.Excel文档.邮件以及任何保存在电脑上的东西. 可使用python批量的操作本地文件, ...

Shell中判断文件&comma;目录是否存在

一. 具体每个选项对应的判断内容: -e filename 如果 filename存在,则为真 -d filename 如果 filename为目录,则为真 -f filename 如果 filena ...

Java学习笔记——可视化Swing中JTable控件绑定SQL数据源的两种方法

在 MyEclipse 的可视化 Swing 中,有 JTable 控件. JTable 用来显示和编辑常规二维单元表. 那么,如何将 数据库SQL中的数据绑定至JTable中呢? 在这里,提供两种方 ...

随机推荐

HDU 5839 Special Tetrahedron &lpar;2016CCPC网络赛08&rpar; &lpar;暴力&plus;剪枝&rpar;

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5839 在一个三维坐标,给你n个点,问你有多少个四面体(4个点,6条边) 且满足至少四边相等 其余两边不 ...

&lbrack;转&rsqb;Response&period;AddHeader 文本下载

本文转自:http://hi.baidu.com/yuxi981/item/7c617fc41b03ad60f6c95d30 Response.AddHeader实现下载     ///

python--for循环

1.循环输出1-10 for i in range(1,11): print(i) 1 2 3 4 5 6 7 8 9 10 2.break用法,break为跳出整个当前循环层,只跳一层.当i=5的时 ...

【转】MTK Android Driver知识大全

原文网址:http://www.cnblogs.com/biglucky/p/4413797.html 一.Display 1.lcm 相关概念1.1) MIPI接口:一共有三种接口:DBI(也做CP ...

logstash grok正则调试

logstash 正则调试: nginx 配置: log_format main '$remote_addr [$time_local] "$request" '; logstas ...

Linux下tomcat的安装与项目部署

最近在linux下安装了jdk,为了圆我以前的心愿,把tomcat也安装了,顺便部署个项目,也算是小又成就感 废话不说了,直接上过程 一.下载安装对应的jdk,并配置Java环境. 有关jdk的安装请 ...

ef core的外键约束笔记

ef core设置可选外键,有如下几种方式:1.在依赖实体AAA中,并不显式设置外键属性XXXId 2.手动设置外键属性XXXId为可空类型(int?等类型) 3.在实体类与数据表进行映射时,配置狭隘 ...

CSS3效果:animate实现点点点loading动画效果(一)

实现如图所示的点点点loading效果: 一:CSS3 animation实现代码 html代码: 提交订单中...< ...

Excel文件读取的两种方式

1.Pandas库的读取操作 from pandas import read_excel dr=read_excel(filename,header) dr#dataframe数据 dw=DataFr ...

for循环以及数据类型

一.for循环(迭代式循环) 了解:当我们在写代码时,如果代码是纯运算的代码,会占用大量的CPU,如果是I/O代码,则不会占用CPU. for i in range(10):  #可以是任意类型(字符 ...

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值