递归遍历和递归删除
递归遍历文件夹
package com.qian;
import java.io.File;
/**
* 递归遍历文件夹
*
*/
//listFiles()
//返回一个抽象路径名数组,
// 这些路径名表示此抽象路径名表示的目录中的文件。
public class Demo19 {
public static void main(String[] args) {
listDir(new File("R:\\myfiles"));
}
public static void listDir(File dir){
File[] files=dir.listFiles();
// System.out.println("files数组里面的东西是");
// for (File file : files) {
// System.out.println(file);
// }
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());
}
}
}
}
}
形参dir里面存的是:

files数组里面存放的是:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MBAstCzP-1664557230716)(../../../../../Program Files (x86)]/Typora/assets/29-递归遍历和递归删除/image-20220926011523736.png)](https://i-blog.csdnimg.cn/blog_migrate/af0593076f16024a510ae6e808f89e52.png)
递归删除文件夹
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aXjnwfKu-1664557230717)(../../../../../Program Files (x86)]/Typora/assets/29-递归遍历和递归删除/image-20220926012936830.png)](https://i-blog.csdnimg.cn/blog_migrate/df09360613ce08f1738710564b3a32cd.png)
package com.qian;
import java.io.File;
/**
* 一、递归遍历文件夹
* 二、递归删除文件夹
*
*/
//listFiles()
//返回一个抽象路径名数组,
// 这些路径名表示此抽象路径名表示的目录中的文件。
public class Demo19 {
public static void main(String[] args) {
// listDir(new File("R:\\myfiles"));
deleteDir(new File("R:\\myfiles"));
}
//一、递归遍历文件夹
public static void listDir(File dir){
File[] files=dir.listFiles();//把dir里面的全部文件路径存在files数组中
// System.out.println("dir存放的是"+dir);
// System.out.println("files数组里面的东西是");
// for (File file : files) {
// System.out.println(file);
// }
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();//把dir里面的全部文件路径存在files数组中
if(files!=null&&files.length>0){
for (File file : files) {
if(file.isDirectory()){
deleteDir(file);//递归
}
else{
//删除文件
System.out.println(file.getAbsolutePath()+"删除:"+ file.delete());
}
}
}
System.out.println(dir.getAbsolutePath()+"删除:"+ dir.delete());
}
}
"+ file.delete());
}
}
}
System.out.println(dir.getAbsolutePath()+"删除:"+ dir.delete());
}
}
本文介绍了如何使用Java IO进行递归遍历文件夹和递归删除文件夹的操作。通过形参dir传递文件夹路径,遍历过程中将文件信息存储在files数组中。同时详细讲解了递归删除的实现过程。

被折叠的 条评论
为什么被折叠?



