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 }