Java遍历目录
工具类:
package IO;
import java.io.File;
import java.io.IOException;
//列出File的一些常用的操作(过滤,遍历...)
public class FileUtils {
/*
列出指定目录下(包括子目录)的所有文件
*/
public static void listDirectory(File dir)throws IOException{
if(!dir.exists()){
throw new IllegalArgumentException("目录:"+dir+"不存在");
}
//判断是否是目录
if(!dir.isDirectory()){
throw new IllegalArgumentException(dir+"不是目录");
}
//list()方法用于列出当前目录下子目录和文件
// String[] filename = dir.list();//返回的是字符串数组(不包含子目录下的内容)
// for(String string:filename){
// System.out.println(dir+string);
// }
//如果要遍历子目录的子目录就需要构造成file对象进行递归操作,File提供了直接返回File对象的API
File[] filename2 = dir.listFiles();//返回的是直接子目录(文件)的抽象
System.out.println(filename2);
if(filename2!=null&&filename2.length>0){
for(File file:filename2){
if(file.isDirectory()){
//递归
listDirectory(file);
}else {
System.out.println(file);
}
}
}
}
}
测试类:
package IO;
import java.io.File;
import java.io.IOException;
public class fileUtilTest1 {
public static void main (String[] args)throws IOException {
FileUtils.listDirectory(new File("F:\\IO"));
}
}