递归列出目录下所有文件与删除目录下所有文件
实现比较简单,不用过多的解释
缺点:没有层级
代码如下:
/**
* 递归输出目录下的所有文件
*/
public static void fileDir(File Dir) {
File[] files = Dir.listFiles(); // 获取该目录下的所有文件,并存入数组
for (File file : files) {
if (file.isDirectory()) {
System.out.println("目录名:" + file.getName());
fileDir(file);
} else {
System.out.println("文件名:" + file.getName());
}
}
}
/**
* 递归删除目录下的所有文件
*/
public static void deleteDir(File dir) {
if (dir.exists()) { // 判断目录是否存在
File[] files = dir.listFiles();
// 如果是目录继续递归,是文件直接删除
for (File file : files) {
if (file.isDirectory()) {
deleteDir(file);
} else {
file.delete();
}
}
// 当删除完目录中的所有文件时,删除该目录
dir.delete();
System.out.println(dir.getName() + "目录删除成功!");
}
}
完整代码:
import java.io.File;
public class Test1 {
public static void main(String[] args) {
File file = new File("C:/a");
fileDir(file);
File file2 = new File("C:/a/b");
deleteDir(file2);
}
/**
* 递归输出目录下的所有文件
*/
public static void fileDir(File Dir) {
File[] files = Dir.listFiles(); // 获取该目录下的所有文件,并存入数组
for (File file : files) {
if (file.isDirectory()) {
System.out.println("目录名:" + file.getName());
fileDir(file);
} else {
System.out.println("文件名:" + file.getName());
}
}
}
/**
* 递归删除目录下的所有文件
*/
public static void deleteDir(File dir) {
if (dir.exists()) { // 判断目录是否存在
File[] files = dir.listFiles();
// 如果是目录继续递归,是文件直接删除
for (File file : files) {
if (file.isDirectory()) {
deleteDir(file);
} else {
file.delete();
}
}
// 当删除完目录中的所有文件时,删除该目录
dir.delete();
System.out.println(dir.getName() + "目录删除成功!");
}
}
}
运行结果: