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

初学IO,请各位高手多提意见,不足之处请指出
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:\\"));
	}
}

你可能感兴趣的:(F#,J#)