1.如何判断一个指定名称是否是目录
2.如何遍历文件目录,并且包括其子目录的所有内容
演示代码如下
package file类常用的API;
import java.io.File;
import java.io.IOException;
/*
* 列出File的一些常用操作,比如:过滤、遍历等操作
*/
public class FileUtils {
/*
* 列出指定目录下(包括其子目录)的所有文件
*/
public static void listDirectoryFile(File dir) throws IOException {
if(!dir.exists())
throw new IllegalArgumentException("目录"+dir+"不存在!");
if(!dir.isDirectory())
throw new IllegalArgumentException(dir+"不是目录!");
String[] filenames = dir.list();//返回的是字符串数组 直接子的名称,不包含子目录内容
for(String string : filenames){
System.out.println(dir+string);
}
//遍历子目录下的内容,就需要构造成File对象做递归操作,File提供了直接返回File对象A
File[] files = dir.listFiles();//返回的是直接子目录(文件)的抽象
if(files != null && files.length>0){
for(File file : files){
if(file.isDirectory()){
//递归操作
listDirectoryFile(file);
}
else
System.out.println(file);
}
}
}
public static void main(String[] args) throws IOException {
FileUtils.listDirectoryFile(new File("E:\\java"));
}
}