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 }
三、运行结果