Linux & Mac
1.下载tree lib
//mac
brew install tree
//centos
yum install tree
//ubuntu
apt-get install tree
//显示所有文件
tree
//显示深度2层
tree -L 2
2. 命令find组合
find . -print | sed -e 's;[^/]*/;|____;g;s;____|; |;g' > structure.txt
移除node_module
find . -print | grep -v "node" | sed -e 's;[^/]*/;|____;g;s;____|; |;g' > structure.txt
缺点: 不能打印深度选择,或者需要更高层次的语法编写。这里姑且先用着。够用了。
Windows
windows自带tree命令。默认只显示目录
//只显示目录
tree
//显示文件
tree /f
//输出到文件
tree /f > structure.txt
但,由于windows命令不熟悉,也不想花时间去学习windows的命令。那么可以装一个git shell或者推荐使用cmder。
Customization
手动写一个列表。先序遍历:
/**
* 先序遍历 postorder traversal 先输出根节点,然后输出子节点
* Created by Ryan Miao on 9/24/17.
*/
public class PostorderTraversal {
@Test
public void testPostOrder() {
String root = "/Users/ryan/workspace/learning/hexo-blog-src";
int stop = 3;
ArrayList ignores = Lists.newArrayList(".git",".deploy_git","node_modules",".DS_Store");
printTree(root,stop,ignores);
}
private void printTree(String rootFile,int stop,List ignores) {
printTree(new File(rootFile),ignores,false,true);
}
private void printTree(File rootFile,int level,List ignores,boolean isLastChild,boolean isParentLast) {
String name = rootFile.getName();
i