递归遍历和删除文件夹案例
package com.io.file;
import java.io.File;
/**
* 递归遍历和删除
*/
public class Demo3 {
public static void main(String[] args) {
listDir(new File("E:\\桌面\\aa"));
deleteDir(new File("E:\\桌面\\aa"));
}
// 递归遍历文件夹
public static void listDir(File dir){
File[] files = dir.listFiles();
System.out.println(dir.getAbsolutePath());
if (files!=null&&files.length>0){
for (File file : files) {
if (file.isDirectory()){
listDir(file); // 递归
}else {
System.out.println(file.getAbsolutePath());
}
}
}
}
// 递归删除文件夹
public static void deleteDir(File dir){
File[] files = dir.listFiles();
if (files!=null && files.length>0){
for (File file : files) {
if (file.isDirectory()){
deleteDir(file); // 递归
}else {
// 删除里层文件
System.out.println(file.getAbsolutePath() + "删除" + file.delete());
}
}
}
// 删除最外层的文件夹 dir
System.out.println(dir.getAbsolutePath() + "删除" + dir.delete());
}
}