Java遍历输出指定目录、树形结构所有文件包括子目录下的文件
下面通过一段代码介绍下Java输出指定目录、树形结构下的所有文件包括子目录中的文件的方法,并附有效果图。
importjava.io.File;
publicclassReadDirectory{
//文件所在的层数
privateintfileLevel;
/**
*生成输出格式
*@paramname输出的文件名或目录名
*@paramlevel输出的文件名或者目录名所在的层次
*@return输出的字符串
*/
publicStringcreatePrintStr(Stringname,intlevel){
//输出的前缀
StringprintStr="";
//按层次进行缩进
for(inti=;i<level;i++){
printStr=printStr+"";
}
printStr=printStr+"-"+name;
returnprintStr;
}
/**
*输出初始给定的目录
*@paramdirPath给定的目录
*/
publicvoidprintDir(StringdirPath){
//将给定的目录进行分割
String[]dirNameList=dirPath.split("\\\\");
//设定文件level的base
fileLevel=dirNameList.length;
//按格式输出
for(inti=;i<dirNameList.length;i++){
System.out.println(createPrintStr(dirNameList[i],i));
}
}
/**
*输出给定目录下的文件,包括子目录中的文件
*@paramdirPath给定的目录
*/
publicvoidreadFile(StringdirPath){
//建立当前目录中文件的File对象
Filefile=newFile(dirPath);
//取得代表目录中所有文件的File对象数组
File[]list=file.listFiles();
//遍历file数组
for(inti=;i<list.length;i++){
if(list.isDirectory()){
System.out.println(createPrintStr(list.getName(),fileLevel));
fileLevel++;
//递归子目录
readFile(list.getPath());
fileLevel--;
}else{
System.out.println(createPrintStr(list.getName(),fileLevel));
}
}
}
publicstaticvoidmain(String[]args){
ReadDirectoryrd=newReadDirectory();
StringdirPath="D:\\有道词典";
rd.printDir(dirPath);
rd.readFile(dirPath);
}
}
输出结果如下:
以上就是本文的全部内容,希望大家喜欢。