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

代码如下:
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--;
}
}