只是简单的实现了一个递归打开目录树,还需要后续进行完善。效果如下:
代码如下:
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--; } }