java 20 -3 递归之删除特定目录下的特定文件

 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 }