File类查找D盘下所有文件
代码
package com.cs.io;
import java.io.File;
public class AllFile {
public static void main(String[] args) throws Exception {
// 输出D盘根目录下面的文件列表(包括所有的文件和文件夹)
//这里需要使用递归方法
//获取系统时间
long StartTime= System.currentTimeMillis();
//执行方法
getName("D:/");//使用递归方法,这里我查的是D盘
//再次获取系统时间将方法执行的时间打印
long EndTime = System.currentTimeMillis();
System.out.println("currentTimeMillis执行时间为:"+(EndTime-StartTime));
}
public static void getName(String str) throws Exception {
File file = new File(str);
//获取路径参数下所有的文件
File[] listFiles = file.listFiles();
for (File file2 : listFiles) {
//将所获取的文件打印在控制台
System.out.println(file2.getName());
//判断给该文件夹下是否有子文件
if (file2.listFiles()!=null) {
if (file2.isDirectory()) {
getName(file2.getAbsolutePath());
}
}
}
}
}
遍历时用file2.listFiles()!=null这个条件,为什么不用isFiles()方法, 因为在D盘中有些文件没有访问权限,是拒绝访问 的,例如:$RECYCLE.BIN文件(回收站), 下面有许多子文件是拒绝访问的