File类查找D盘下所有文件

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文件(回收站), 下面有许多子文件是拒绝访问的

我的D盘文件有一些隐藏文件,它的子文件夹是拒绝访问的

如图:

隐藏文件下的隐藏文件夹

拒绝访问

猜你喜欢

转载自blog.csdn.net/weixin_40187450/article/details/84836819