递归遍历和递归删除
递归遍历文件夹
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数组里面存放的是:
递归删除文件夹
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());
}
}