1 /*
2 需求:删除H:\demo目录下的带内容的文件
3 分析:
4 A:封装该目录
5 B:获取该目录下所有的文件或文件夹的File数组
6 C:遍历该File数组,获取每一个File对象
7 D:判断所遍历的FIle对象
8 是否是文件夹
9 是:返回步骤B
10 不是:判断里面是否有内容
11 有:删除
12 不是:不理
13 B-D设为递归方法:
14 返回类型;void
15 参数列表:File xxx
16 出口:文件里面有内容
17 */
18 package zl_DiGui;
19
20 import java.io.File;
21
22 public class FileDeleteDemo {
23
24 public static void main(String[] args) {
25
26 //封装该目录
27 File allfile = new File("H:\\demo");
28
29 //调用递归
30 deletefile(allfile);
31 }
32
33 //递归方法
34 private static void deletefile(File allfile) {
35 //获取该目录下的所有文件或文件夹的File数组
36 File[] arrayfile = allfile.listFiles();
37
38 //遍历该数组,获取每一个File对象
39 for(File file : arrayfile){
40 //判断是否是文件夹
41 if(file.isDirectory()){
42 //是的话,返回步骤B
43 deletefile(file);
44 }
45 else{
46 //不是,就判断是否为空文件
47 long l = file.length();
48 if(l != 0 ){
49 file.delete();
50 }
51 //如果是空文件的话,就输出它的名称和绝对路径
52 else{
53 System.out.println(file.getName()+"\t"+file.getAbsolutePath());
54 /*
55 a.txt H:\demo\a.txt
56 地方.mp3 H:\demo\地方.mp3
57 斯蒂芬撒.avi H:\demo\撒旦发射的\斯蒂芬撒.avi
58 */
59 }
60 }
61 }
62
63 }
64
65 }