自己写的用递归实现树形目录,并且文件夹要在文件的上面显示

[size=medium]初学IO,请各位高手多提意见,不足之处请指出[/size]

package org.yang.Recursion;

import java.io.File;
import java.util.Arrays;
import java.util.Comparator;

public class TreeDir {
//i用来判断缩进
int i = 0;
//n级目录就输出n个制表符
public String createMark(int i){
String s = "";
for(int t = 0; t<i;t++){
s = s + "\t";
}
return s;
}
public void showTree(File f){
//根据全限定名中的分隔符的个数判断是几级目录
int j = f.getAbsolutePath().split("\\\\").length-2;
//递归出口:如果为空目录或者是文件时跳出
if(f.isFile() || f.list() == null){
System.out.println(createMark(j)+f.getName());
}
//进到else里面的f一定是目录,且目录下面不为空
else{
System.out.println(createMark(j)+f.getName()+"\\");
File[] fff = f.listFiles();
Arrays.sort(fff,new Comparator<File>(){
@Override
public int compare(File o1, File o2) {
if(o1.isDirectory()&&o2.isFile()){
return -1;
}
else if(o1.isDirectory()&&o2.isDirectory()){
return 0;
}
return 1;
}
});
for(File ff : fff){
showTree(ff);
}
}
}
public static void main(String[] args) {
TreeDir tree = new TreeDir();
tree.showTree(new File("F:\\"));
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值