我的网站:欢迎大家访问
使用File类,递归实现删除所有文件夹和文件功能
package com.ifueen.classtest.recursion;
import java.io.File;
public class RecursionTest {
/*
* 递归
* */
public static void main(String[] args) {
// TODO Auto-generated method stub
File file = new File("E:\\人民不需要自由"); //创建File对象
del(file);
}
public static void del(File file) { //设计方法删除
if (file!=null) {
File[] listFiles = file.listFiles(); //拿到所有对象
for (File file2 : listFiles) { //拿到每个对象
if (file2.isFile()) { //如果对象是文件
file2.delete(); //直接删除
}else{ //说明是文件夹
del(file2); //递归调用自身
}
}
}
file.delete(); //删除
System.out.println("删除成功!!!");
}
}
然后撤销删除(撤销上面刚删除的目录)功能
package com.ifueen.homework;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
public class _01HomeWork {
/*
*
撤销删除(撤销上面刚删除的目录)功能
在删除的时候定义一个容器,将删除的值装进去
* */
static ArrayList<File> arrayList = new ArrayList<File>(); //装文件
static ArrayList<File> arrayList1 = new ArrayList<File>(); //装文件夹
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
File file = new File("E:\\人民不需要自由");
String name = file.getAbsolutePath();
System.out.println(name);
del(file);
for (File file3 : arrayList1) {
file3.mkdir();
}
for (File file4 : arrayList) {
file4.createNewFile();
}
}
public static void del(File file) throws IOException {
if (file!=null) { //如果file对象不为空
File[] listFiles = file.listFiles(); //拿到所有的对象
for (File file2 : listFiles) { //遍历所有对象
if (file2.isFile()) { //如果是文件
arrayList.add(file2); //装文件到容器中
file2.delete(); //直接删除
}else{
arrayList1.add(file2); //装文件夹
del(file2); //递归调用自身
}
}
}
}
}
这样就实现了删除和撤销删除的功能