import java.io.File;
public class deleDemo {
public static void main(String[] args) {
demo(new File("D:\\javaTest"));
//demo2(new File("D:\\javaTest"));
}
/*方式1*/
public static void demo(File f){//传一个File对象f进去 因为要调用其方法
if(f!=null){//判断f数据是否为空 因为可能有人会传null值进来
if(f.exists()){//判断该抽象路径的目录和文件是否存在
if(f.isDirectory()){//判断是否是目录
File[] listFiles = f.listFiles();//调用listFiles()方法返回一个File对象组成的数组集合
if(listFiles==null){//如果该数组为Null说明没有文件和目录对象 就是一个空的文件夹
f.delete();//直接删除
}else{//不为空的文件夹
for (File file : listFiles) {//遍历该集合
demo(file);//遍历到的每个File对象传入demo()方法
}
f.delete();//最后将这个不为空的文件夹删除
}
}else{//不是目录可能是是文件或者不存在
f.delete();//直接删除
}
}else{//为Null
return;//结束方法调用
}
}
}
/*方式2*/
public static void demo2(File f2){//传一个File对象f2进去 因为要调用其方法
if(f2!=null){
return;//判断f2数据是否为空 因为可能有人会传null值进来
}
if(f2.exists()){//测试抽象路径名的目录和文件是否存在
if(f2.isDirectory()){//判断是否是目录
File[] listFiles = f2.listFiles();//调用listFiles()方法返回一个File对象组成的数组集合
for (File file : listFiles) {//遍历listFiles集合,遍历到的每个对象用File对象装
demo2(file);//调用自身方法将遍历到的每个File对象传进去再作判断
}
}
f2.delete();//因为如果不是空文件,再这里遍历删除的只是文件里面的东西,该文件还存在,所以还要做一次删除,这里这段代码会最后执行
}
}
}
public static void main(String[] args) {
demo(new File("D:\\javaTest"));
//demo2(new File("D:\\javaTest"));
}
/*方式1*/
public static void demo(File f){//传一个File对象f进去 因为要调用其方法
if(f!=null){//判断f数据是否为空 因为可能有人会传null值进来
if(f.exists()){//判断该抽象路径的目录和文件是否存在
if(f.isDirectory()){//判断是否是目录
File[] listFiles = f.listFiles();//调用listFiles()方法返回一个File对象组成的数组集合
if(listFiles==null){//如果该数组为Null说明没有文件和目录对象 就是一个空的文件夹
f.delete();//直接删除
}else{//不为空的文件夹
for (File file : listFiles) {//遍历该集合
demo(file);//遍历到的每个File对象传入demo()方法
}
f.delete();//最后将这个不为空的文件夹删除
}
}else{//不是目录可能是是文件或者不存在
f.delete();//直接删除
}
}else{//为Null
return;//结束方法调用
}
}
}
/*方式2*/
public static void demo2(File f2){//传一个File对象f2进去 因为要调用其方法
if(f2!=null){
return;//判断f2数据是否为空 因为可能有人会传null值进来
}
if(f2.exists()){//测试抽象路径名的目录和文件是否存在
if(f2.isDirectory()){//判断是否是目录
File[] listFiles = f2.listFiles();//调用listFiles()方法返回一个File对象组成的数组集合
for (File file : listFiles) {//遍历listFiles集合,遍历到的每个对象用File对象装
demo2(file);//调用自身方法将遍历到的每个File对象传进去再作判断
}
}
f2.delete();//因为如果不是空文件,再这里遍历删除的只是文件里面的东西,该文件还存在,所以还要做一次删除,这里这段代码会最后执行
}
}
}