/* * 需求:递归删除带内容的目录 * * 目录:demo * ---------------------------------------------------------------------------------- * 具体的demo目录如下: * demoaaaaa1.txt * demoaaaaa2.txt * demobbb1.txt * demobbb2.txt * 具体的删除结果如下:(删除顺序:先删某文件夹下的文件,再删该文件) * a1.txt * a2.txt * aaaa * * b1.txt * b2.txt * bbbb * * demo * * ----------------------------------------------------------------------------------- * 分析: * A:封装目录 * B:获取该目录下的所有文件或者文件夹的File数组 * C:遍历该File数组,得到每一个File对象 * D:判断该File对象是否是文件夹 * 是:回到B * 否:就删除 */ public class FileDeleteDemo { public static void main(String[] args) { // 封装目录 File srcFolder = new File("demo"); // 递归实现 deleteFolder(srcFolder); } private static void deleteFolder(File srcFolder) { // 获取该目录下的所有文件或者文件夹的File数组 File[] fileArray = srcFolder.listFiles(); if (fileArray != null) { // 遍历该File数组,得到每一个File对象 for (File file : fileArray) { // 判断该File对象是否是文件夹 if (file.isDirectory()) { //回到B,继续执行(递归) deleteFolder(file); } else { //打印删除了的文件 System.out.println(file.getName() + "---" +file.delete()); } } //打印删除的文件夹(先删除该文件夹下的文件,再删除文件夹) System.out.println(srcFolder.getName() + "---" + srcFolder.delete()); } } }