Java学习-040-级联删除目录中的文件、目录

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

闲话少述,直接上码了!

 1 /**
 2  * Aaron.ffp Inc.
 3  * Copyright (c) 2004-2015 All Rights Reserved.
 4  */
 5 package ffp;
 6
 7 import java.io.File;
 8
 9 /**
10  *
11  * @author Aaron.ffp
12  * @version V1.0.0: delDir ffp DelDir.java, 2015年12月31日 上午10:14:23 Exp $
13  */
14 public class DelDir {
15     private static String msg = "";
16
17     /**
18      *
19      * @author Aaron.ffp
20      * @version V1.0.0: delDir ffp DelDir.java main, 2015年12月31日 上午10:14:23 Exp $
21      *
22      * @param args
23      */
24     public static void main(String[] args) {
25         String rootDir = args[0];
26         String delRootDir = args[1];
27
28
29         try {
30             File root = new File(rootDir);
31
32             if (root.exists()) {
33                 if (root.isFile()) {
34                     root.delete();
35
36                     return;
37                 }
38
39                 delFile(rootDir);
40
41                 if ("delete".equals(delRootDir.toLowerCase())) {
42                     root.delete();
43                 }
44             }
45         } catch (Exception e) {
46             System.out.println(e.getMessage());
47         }
48     }
49
50     public static void delFile (String rootDir) {
51         String filename = "";
52
53         File[] fList = new File(rootDir).listFiles();
54
55         for (int i = 0; i < fList.length; i++) {
56             filename = fList[i].getPath();
57
58             if (fList[i].getPath().equals(rootDir) && (new File(rootDir).listFiles().length < 1)) {
59                 return;
60             }
61
62             if (fList[i].isFile()) {
63                 if (fList[i].delete()){
64                     msg = "\n\n----------------- >> Successed to delete file \n{" + filename + "}";
65                     System.out.println(msg);
66                 }
67             }
68
69             if (fList[i].isDirectory()) {
70                 if (fList[i].listFiles().length > 0) {
71                     delFile(fList[i].getPath());
72                 } else {
73                     if(fList[i].delete()){
74                         msg = "\n\n================= >> Successed to delete folder \n{" + filename + "}";
75                         System.out.println(msg);
76                     }
77                 }
78             }
79         }
80
81         fList = new File(rootDir).listFiles();
82         if (fList.length > 0) {
83             delFile(rootDir);
84         }
85     }
86 }

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

1 java -jar cleanDirectory.jar "{要删除的根目录}" "delete"
2
3 第二个参数:是否删除根目录

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

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

时间: 2024-12-26 10:37:24

Java学习-040-级联删除目录中的文件、目录的相关文章

好程序员Java学习路线分享JS中的面向对象

好程序员Java学习路线分享JS中的面向对象,在JS中,一般情况下我们都是直接写函数,直接调用,但是发现JS中也有new关键字,那么new关键字作为创建对象的关键字,给我们的感觉就是在JS中可以定义一个类,然后用new创建对象,那么在JS中如何做呢?我们先看如下案例,下面的案例是写一个简单的喷泉效果的. window.onload = function(){ // 创建一个画布对象var canvas = document.createElement("canvas");// 设置大小

java学习笔记16--I/O流和文件

本文地址:http://www.cnblogs.com/archimedes/p/java-study-note16.html,转载请注明源地址. IO(Input  Output)流 IO流用来处理设备之间的数据传输,对数据的操作是通过流的方式,Java用于操作流的对象都在IO包中 输入/输出流可以从以下几个方面进行分类 从流的方向划分: 输入流.输出流 从流的分工划分: 节点流.处理流 从流的内容划分: 面向字符的流.面向字节的流 字符流和字节流 字符流的由来: 因为数据编码的不同,而有了对

Java学习不走弯路教程(3.从文件内容查询开始)

从文件查询开始 一. 前言在前两章教程中,分别介绍了DOS环境搭建和Eclipse环境搭建.本章将带大家实现用简单SQL语句查询文件.注:1.本文针对初学Java的同学训练学习思路,请不要太纠结于细节问题.2.本文旨在达到抛砖引玉的效果,希望大家扩展本例子,以学到更多知识的精髓. 二. 写给初学Java的同学在介绍本章内容之前,首先介绍一下Java的学习方法.相信大家在看本文的时候已经已经拿到了各种Java学习路径,大体都是一样.我想说的是,不要让知识的学习成为负担,Java技术种类繁多,是无论

运维学习之Linux系统中的文件传输、归档、压缩

不同系统之间的文件传输 1.文件归档 1. 文件归档,就是把多个文件变成一个归档文件 2. tar c ##创建 f ##指定归档文件名称 t ##显示归档文件中的内容 r ##向归档文件中添加文件 --get ##取出单个文件 --delete ##删除单个文件 x ##取出归档文件中的所有内容 -C ##指定解档目录 -z ##gz格式压缩 -j ##bz2格式压缩 -J ##xz格式压缩 2.压缩 gz gzip etc.tar ##压缩成gz格式 gunzip  etc.tar.gz #

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

函数名 使用方法 getcwd() 返回当前工作目录 chdir(path) 改变工作目录 listdir(path='.') 列举指定目录中的文件名('.'表示当前目录,'..'表示上一级目录) mkdir(path) 创建单层目录,如该目录已存在抛出异常 makedirs(path) 递归创建多层目录,如该目录已存在抛出异常,注意:'E:\\a\\b'和'E:\\a\\c'并不会冲突 remove(path) 删除文件 rmdir(path) 删除单层目录,如该目录非空则抛出异常 remov

Shell中判断文件,目录是否存在

一. 具体每个选项对应的判断内容: -e filename 如果 filename存在,则为真 -d filename 如果 filename为目录,则为真 -f filename 如果 filename为常规文件,则为真 -L filename 如果 filename为符号链接,则为真 -r filename 如果 filename可读,则为真 -w filename 如果 filename可写,则为真 -x filename 如果 filename可执行,则为真 -s filename 如果

【SpringMVC学习08】SpringMVC中实现文件上传

之前有写过一篇struts2实现的文件上传,这一篇博文主要来总结下springmvc实现文件上传的步骤.首先来看一下单个文件的上传,然后再来总结下多个文件上传. 1. 环境准备 springmvc上传文件的功能需要两个jar包的支持(点我下载),如下 2. 单个文件的上传 2.1 前台页面 简单的写一下前台页面,注意一点的是form表单中别忘了写enctype="multipart/form-data"属性: <tr> <td>商品图片</td> &

Java实现下载BLOB字段中的文件

概述 web项目的文件下载实现:servlet接收请求,spring工具类访问数据库及简化大字段内容获取. 虽然文章的demo中是以sevlet为平台,想必在spring mvc中也有参考意义. 核心代码 响应设置和输出 1 public void service(ServletRequest request, final ServletResponse response) 2 throws ServletException, IOException { 3 /* 1. 设置响应内容类型 */

java学习(1):在一个文件夹下搜寻想要类型的所有文件

要求:在一个文件夹下,搜寻自己想要类型的所有文件(比如:我想要一个文件夹中的所有txt文件). import java.io.File; /** *获得一个文件下想要类型的所有的文件 *@author xcx *@time 2017年6月24日下午3:02:00 */ public class GetFile { public static void main(String[] args) { String file = "d:\\java";//文件夹的名称 File f = new