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 }