Java中查找文件并且打印输出指定文件下面的子目录

 1 package com.immoc;
 2 
 3 import java.io.File;
 4 import java.io.IOException;
 5 
 6 public class FileUtile {
 7 //列出file类的常用操作,遍历,过滤等
 8     
 9         /*
10          * 列出指定目录下的文件(包括子目录的文件)
11          */
12         
13     public static void listDirectory(File dir) throws IOException{
14         //判断文件是否存在
15         if(!dir.exists()){
16             throw new IllegalArgumentException("目录"+dir+"不存在");
17         }
18         //用于判断该文件是否是目录
19         if(!dir.isDirectory()){
20             throw new IllegalArgumentException(dir+"不是目录");
21         }
22 //        //列出子目录返回字符串数组
23 //        String[] filenames=dir.list();
24 //        for (String string : filenames) {
25 //            System.out.println(dir+"\\"+string);
26 //            
27 //        }
28 //        //如果要遍历子目录下的内容就需要构造成file对象
29         //递归操作子目录下的内容
30         File[] file=dir.listFiles();//返回的是直接子目录的抽象,
31         //判断文件是否是空文件并且文件有价值
32         if(file!=null&&file.length>0){
33             //遍历所有的文件
34         for (File file2 : file) {
35             if(file2.isDirectory()){
36                 //递归//1、传一个文件路径dir进来,如果传进来的是文件夹,取出文件夹中的所有文件进行遍历//
2、遍历时将每个文件进行判断,如果发现是文件夹,执行递归,又回到第一步。如果不是文件夹,就输出
37                 listDirectory(file2);
38             }
39             System.out.println(file2);
40             
41         }
42         }
43         else
44         {System.out.println(file);
45         }
46     }
47         
48     }
49 
50 
51 
52 //测试类代码
53 package com.immoc;
54 
55 import java.io.File;
56 import java.io.IOException;
57 
58 public class FileUtiltest {
59 
60     public static void main(String[] args) throws IOException {
61     FileUtile.listDirectory(new File("H:\\d盘资料"));
62 
63     }
64 
65 }
原文地址:https://www.cnblogs.com/xiaxj/p/5459035.html