public class DeleteFileTest { public static void main(String[] args) { String deleteFilePath = "C:\\Users\\Hery\\Desktop\\文件夹测试"; File deleteFile = new File(deleteFilePath); if (deleteFile.exists()) { if (deleteFile.isFile()) { System.out.println("删除" + deleteFile.getAbsolutePath());//文件路径 if (deleteFile.delete()) { System.out.println("删除目标文件成功"); } } else if (deleteFile.isDirectory()) { List<Boolean> deleteStateList = new ArrayList<>(); recursionRemove(deleteFile, deleteStateList); if (deleteStateList.stream().allMatch(eachDeleteState -> eachDeleteState == true)) { System.out.println("删除目标文件夹成功"); } } } else { System.out.println("目标文件(夹)不存在"); } } /** * 递归删除文件夹下的子目录与文件 * * @param targetFile 目标文件 * @param deleteStateList 记录文件删除状态 */ private static void recursionRemove(File targetFile, List<Boolean> deleteStateList) { File[] filesArr = targetFile.listFiles(); for (File f : filesArr) { if (f.isFile()) { System.out.println("删除" + f.getAbsolutePath());//文件路径 deleteStateList.add(f.delete()); } else if (f.isDirectory()) { recursionRemove(f, deleteStateList); } } System.out.println("删除" + targetFile.getAbsolutePath());//文件路径 deleteStateList.add(targetFile.delete()); } }