Java案例:用File类递归实现删除和撤销删除功能

使用File类,递归实现删除所有文件夹和文件功能

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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("删除成功!!!");
}

}

然后撤销删除(撤销上面刚删除的目录)功能

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
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); //递归调用自身
}
}
}

}

}

这样就实现了删除和撤销删除的功能

❤赏点钱让我买杯快乐水8❤