-------------android培训、java培训、期待与您交流-----------------
需求:列出指定目录下的文件或者文件夹,包含子目录中的文件
分析:由于目录中还有目录,要列出子目录中的文件同样可以调用原来定义的方法,所以可以用递归实
现
代码:
String getLevel(int level){//根据目录级别在目录名称前面打印空格和|--
StringBuilder sb = new StringBuilde();
for(int i=0;i<level;i++){
sb.append(" ");//几级目录就在前面加几个空格
}
if(level!=0)sb.append("|--");//不是根目录则在空格后加|--
return sb.toString();
}
void showDir(File dir,int level){
System.out.println(getLevel(level)+dir.getName());
level++;//把目录级别数加1,用于表示下级子目录的级别
File[] files = dir.listFiles(); //获得根目录下的文件列表数组
for(int i=0;i<files.length;i++){//遍历根目录的文件列表
if(files[i].isDirectory()){//如果文件是子目录则继续调用该方法列出子目录下的
文件
showDir(files[i],level);
}else{
System.out.println(getLevel(level)+files[i]);
}
}
}