Java 之递归删除目录

Java 之递归删除目录

一、思想

  必须从最里层的文件开始删除,使用递归删除。

二、源代码:RecursiveDeleteDirectory.java

 1 package cn.com.zfc.day016;
 2 
 3 import java.io.File;
 4 
 5 /**
 6  * @describe 递归删除目录
 7  * @author zfc
 8  * @date 2018年1月1日 上午8:44:55
 9  */
10 public class RecursiveDeleteDirectory {
11 
12     public static void main(String[] args) {
13         String directoryName = "F:\\大数据培训软件";
14         // 1、映射目录文件
15         File directory = new File(directoryName);
16         // 2、调用方法
17         recursiveDeleteDirectory(directory);
18     }
19 
20     /**
21      * 删除指定目录下面的文件名称,包括子目录
22      * 
23      * @param directoryName:目录名称
24      * @author zfc
25      * @date 2018年1月1日上午8:46:08
26      *
27      */
28     public static void recursiveDeleteDirectory(File directory) {
29         // 1、判断映射的目录文件是否存在?
30         if (!directory.exists()) {
31             // 不存在则直接返回
32             return;
33         }
34         // 2、判断是否是目录?
35         if (!directory.isDirectory()) {
36             // 不是目录,判断是否是文件?
37             if (directory.isFile()) {
38                 System.out.println("是文件,文件绝对路径:" + directory.getAbsolutePath() + ",删除文件:" + directory.delete());
39             }
40         } else {
41             // 是目录,获取该目录下面的所有文件(包括目录)
42             File[] files = directory.listFiles();
43             // 判断 files 是否为空?
44             if (null != files) {
45                 // 遍历文件数组
46                 for (File f : files) {
47                     // 判断是否是目录?
48                     if (f.isDirectory()) {
49                         // 是目录,则递归目录
50                         recursiveDeleteDirectory(f);
51                     } else {
52                         // 不是目录,判断是否是文件?
53                         if (f.isFile()) {
54                             System.out.println("是文件,文件绝对路径:" + f.getAbsolutePath() + ",删除文件:" + f.delete());
55                         }
56                     }
57                 }
58             }
59             System.out.println("是本次最外层目录,目录的绝对路径:" + directory.getAbsolutePath() + ",删除目录:" + directory.delete());
60 
61         }
62     }
63 }

三、运行结果

posted @ 2018-01-01 10:15  勇闯天涯zfc  阅读(353)  评论(0编辑  收藏  举报