Java 之递归删除目录

时间:2021-11-06 05:46:22

Java 之递归删除目录

一、思想

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

二、源代码:RecursiveDeleteDirectory.java

 package cn.com.zfc.day016;

 import java.io.File;

 /**
* @describe 递归删除目录
* @author zfc
* @date 2018年1月1日 上午8:44:55
*/
public class RecursiveDeleteDirectory { public static void main(String[] args) {
String directoryName = "F:\\大数据培训软件";
// 1、映射目录文件
File directory = new File(directoryName);
// 2、调用方法
recursiveDeleteDirectory(directory);
} /**
* 删除指定目录下面的文件名称,包括子目录
*
* @param directoryName:目录名称
* @author zfc
* @date 2018年1月1日上午8:46:08
*
*/
public static void recursiveDeleteDirectory(File directory) {
// 1、判断映射的目录文件是否存在?
if (!directory.exists()) {
// 不存在则直接返回
return;
}
// 2、判断是否是目录?
if (!directory.isDirectory()) {
// 不是目录,判断是否是文件?
if (directory.isFile()) {
System.out.println("是文件,文件绝对路径:" + directory.getAbsolutePath() + ",删除文件:" + directory.delete());
}
} else {
// 是目录,获取该目录下面的所有文件(包括目录)
File[] files = directory.listFiles();
// 判断 files 是否为空?
if (null != files) {
// 遍历文件数组
for (File f : files) {
// 判断是否是目录?
if (f.isDirectory()) {
// 是目录,则递归目录
recursiveDeleteDirectory(f);
} else {
// 不是目录,判断是否是文件?
if (f.isFile()) {
System.out.println("是文件,文件绝对路径:" + f.getAbsolutePath() + ",删除文件:" + f.delete());
}
}
}
}
System.out.println("是本次最外层目录,目录的绝对路径:" + directory.getAbsolutePath() + ",删除目录:" + directory.delete()); }
}
}

三、运行结果

Java 之递归删除目录