1. 遞歸列出指定名字的文件夾
2. 刪除目錄以及目錄下的文件
3. 刪除文件
1
private void listDirs(String path, String keyWord) {
2
boolean flag = false;
3
File rootDir = new File(path);
4
// 判斷文件夾是否存在,如果不存在,返回
5
if (!rootDir.exists()) {
6
return;
7
}
8
File[] childFiles = rootDir.listFiles();
9
if (childFiles == null || childFiles.length == 0) {
10
return;
11
}
12
for (File file : childFiles) {
13
if (file.isDirectory()) {
14
if (file.getName().toString().equals(keyWord)) {
15
System.out.println(file.getAbsolutePath());
16
flag = deleteDirectory(file.getAbsolutePath());
17
if (!flag){
18
break;
19
}
20
}
21
listDirs(file.getAbsolutePath(), keyWord);
22
} else {
23
continue;
24
}
25
}
26
}
27

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

2. 刪除目錄以及目錄下的文件
1
public boolean deleteDirectory(String path) {
2
boolean flag = false;
3
// 如果path不以文件分隔符結(jié)尾,自動(dòng)添加文件分隔符
4
if (!path.endsWith(File.separator)) {
5
path = path + File.separator;
6
}
7
File dirFile = new File(path);
8
// 如果dir對(duì)應(yīng)的文件不存在,或者不是一個(gè)目錄,則退出
9
if (!dirFile.exists() || !dirFile.isDirectory()) {
10
return false;
11
}
12
flag = true;
13
// 刪除文件夾下的所有文件(包括子目錄)
14
File[] files = dirFile.listFiles();
15
for (int i = 0; i < files.length; i++) {
16
// 刪除子文件
17
if (files[i].isFile()) {
18
flag = deleteFile(files[i].getAbsolutePath());
19
if (!flag)
20
break;
21
} // 刪除子目錄
22
else {
23
flag = deleteDirectory(files[i].getAbsolutePath());
24
if (!flag)
25
break;
26
}
27
}
28
if (!flag)
29
return false;
30
// 刪除當(dāng)前目錄
31
if (dirFile.delete()) {
32
return true;
33
} else {
34
return false;
35
}
36
}
37

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

3. 刪除文件
1
public boolean deleteFile(String path) {
2
boolean flag = false;
3
File file = new File(path);
4
// 路徑為文件且不為空則進(jìn)行刪除
5
if (file.isFile() && file.exists()) {
6
file.delete();
7
flag = true;
8
}
9
return flag;
10
}
11

2

3

4

5

6

7

8

9

10

11
