一旦工作,那就要努力的干,聪明的干,快速的干——用省下来的时间干自己喜欢干的事情。!

java采用File类,递归打印出目录树,类似linux 中 tree命令效果

java-basic lampnick 4018℃ 0评论

只是简单的实现了一个递归打开目录树,还需要后续进行完善。效果如下:
tree

代码如下:

package com.lampnick.archiver;

import java.io.BufferedReader;
import java.io.File;
import java.io.InputStreamReader;
import java.util.Arrays;

import org.junit.Test;

public class FileTest {
    int level = -1;
    @Test
    public void recursiveReadFileTest() {
        try {
            System.out.print("Please input root path:");
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            String path = br.readLine();
            // not input or input a blank
            while ("".equals(path) || " ".equals(path)) {
                System.out.print("Please input root path:");
                path = br.readLine();
            }
            readAllFiles(path);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * read all files from a path
     * 
     * @param path
     */
    private void readAllFiles(String path) {
        File f = new File(path);
        level++;
        if (!f.exists()) {
            System.out.println("No such a file or directory!");
            return;
        }
        File[] flist = f.listFiles();
        if (flist == null) {
            System.out.println(f.getName());
            return;
        }
        Arrays.sort(flist);
        for (File ftmp : flist) {

            for (int i = 0; i < level; i++) {
                System.out.print("│  ");
            }

            System.out.println("├── " + ftmp.getName());
            if (ftmp.isDirectory()) {
                readAllFiles(ftmp.getAbsolutePath());
            }
        }
        level--;
    }
}

转载请注明:MitNick » java采用File类,递归打印出目录树,类似linux 中 tree命令效果

喜欢 (4)or分享 (0)
头像
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址