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 的您一份参考。
最后,非常感谢亲的驻足,希望此文能对亲有所帮助。热烈欢迎亲一起探讨,共同进步。非常感谢! ^_^
Java学习-040-级联删除目录中的文件、目录的更多相关文章
- python基础:os模块中关于文件/目录常用的函数使用方法
Python是跨平台的语言,也即是说同样的源代码在不同的操作系统不需要修改就可以同样实现 因此Python的作者就倒腾了OS模块这么一个玩意儿出来,有了OS模块,我们不需要关心什么操作系统下使用什么模 ...
- os模块中关于文件/目录常用的函数使用方法
os模块中关于文件/目录常用的函数使用方法 函数名 使用方法 getcwd() 返回当前工作目录 chdir(path) 改变工作目录 listdir(path='.') 列举指定目录中的文件名('. ...
- 18 os/os.path模块中关于文件/目录常用的函数使用方法 (转)
os模块中关于文件/目录常用的函数使用方法 函数名 使用方法 getcwd() 返回当前工作目录 chdir(path) 改变工作目录 listdir(path='.') 列举指定目录中的文件名('. ...
- 从.Net到Java学习第十篇——Spring Boot文件上传和下载
从.Net到Java学习系列目录 图片上传 Spring Boot中的文件上传就是Spring MVC中的文件上传,将其集成进来了. 在模板目录创建一个新的页面 profile/uploadPage. ...
- java学习笔记16--I/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中判断文件,目录是否存在
一. 具体每个选项对应的判断内容: -e filename 如果 filename存在,则为真 -d filename 如果 filename为目录,则为真 -f filename 如果 filena ...
- Java学习笔记——可视化Swing中JTable控件绑定SQL数据源的两种方法
在 MyEclipse 的可视化 Swing 中,有 JTable 控件. JTable 用来显示和编辑常规二维单元表. 那么,如何将 数据库SQL中的数据绑定至JTable中呢? 在这里,提供两种方 ...
随机推荐
- HTML5离线应用无法更新的定位与解决
一.些许前提 最近在制作一个Web应用, 其中用到了HTML5的离线应用功能(offline application), 离线应用的概念就不再阐述, 可以查看这两篇文章: http://www.ibm ...
- js中等性操作符(==)、关系操作符(<,>)和布尔操作符(!)比较规则
最近一直在笔试面试,经常碰到例如 123=='123'.'abc'==true等问题,其中有答对的,也有答错的,主要原因还是对ECMAScript的规范没有理解清楚,很多题目没有具体分析所导致.现查阅 ...
- Quest Central for DataBase 5.0.1,6.1 (软件+注册)
找寻了多天,终于找到了,记录下,以后重装用.输入所有组件的licenses后,提示要注册,我选择了Canada,Google了一个地方的PostCode和phone number,填写,注册成功! 软 ...
- object-c 要理解协议的几个重要概念
协议的声明/定义 调用协议 设置委托 协议的实现
- [Unity2D]脚本的使用规则
Unity2D的游戏脚本可以使用3中开发语言来编写:C#,JavaScript和BOO.你可以选择你熟悉的编程语言来编写,通常C#语言的编程功能会更加强大一些,成为首选的语言.在Unity2D中使用C ...
- POJ 3071 Football(概率DP)
题目链接 不1Y都对不住看过那么多年的球.dp[i][j]表示i队进入第j轮的概率,此题用0-1<<n表示非常方便. #include <cstdio> #include &l ...
- 【NOI2015】荷马史诗
追逐影子的人,自己就是影子. ——荷马 Allison 最近迷上了文学.她喜欢在一个慵懒的午后,细细地品上一杯卡布奇诺,静静地阅读她爱不释手的<荷马史诗>.但是由<奥德赛>和& ...
- mac 下的 top 命令
mac 下的 top 命令 文章目录 以前只是在 linux 机器上使用 top 命令.常用的快键键是: p 键 - 按 cpu 使用率排序 m 键 - 按内存使用量排序 这 2 个快捷键在 mac ...
- C3P0连接池问题,APPARENT DEADLOCK!!! Creating emergency..... [问题点数:20分,结帖人lovekong]
采用c3p0连接池,每次调试程序,第一次访问时(Tomcat服务器重启后再访问)都会出现以下错误,然后连接库需要很长时间,最终是可以连上的,之后再访问就没问题了,请高手们会诊一下,希望能帮小弟解决此问 ...
- Gradient
https://en.wikipedia.org/wiki/Gradient