一、需要用到的类和方法
遍历磁盘,我们需要用到File类,构造方法如下: .listFiles()
.isfile()
二、思路
遍历磁盘,首先将磁盘目录下的文件放入数组中,将文件依次进行验证,是一般文件还是目录。一般文件则在控制台打印,目录则需要再次打开,对目录中的文件再次进行判断,这里就有一个重复调用的问题。
三、java代码
package com.mtlk.demo;
import java.io.File;
public class FileDemo {
//获取一个带缓冲的可变字符串,用于存储文件名
private StringBuffer fileName = new StringBuffer();
//用于遍历文件,传入一个File对象,返回文件名字符串
public String getFiles(File file){
//获取目录下的所有文件,存入File数组
File[] childFiles = file.listFiles();
//获取数组元素个数
int length = childFiles.length;
//如果数组不为空,开始遍历
for(int i = 0; i < length; i++){
try {
//获取当前文件
File childFile = childFiles[i];
//如果当前文件是文件
if(childFile.isFile()){
//将带路径的文件名追加到fileName字符串
fileName.append(childFile.getPath());
//插入回车符和换行符
fileName.append("\r\n");
}else{
//如果当前文件是目录,则将当前文件作为实参,递归调用当前对象的getFiles()方法
getFiles(childFile);
}
}catch (Exception e){
//如果捕获到非受查异常,跳过当次循环
continue;
}
}
//将fileName转成String类型字符串,并返回
return fileName.toString();
}
}