java 文件目录树
1. 目标格式,使用tree命令时,目录树格式如下。

public class TreeTest {
public static void main(String[] args) {
File root = new File("${path}/apache-tomcat-7.0.93/webapps/manager/");
tree(root, 0, -1, "");
}
public static void tree(File file, int index, int parentIndex, String parentFix) {
String nowFix = "";
if (parentIndex == 0) {
nowFix = parentFix + " ";
} else if(parentIndex > 0) {
nowFix = parentFix + "| ";
}
System.out.println(nowFix + (parentIndex >= 0 ? "|-" : "") + file.name());
if (file.isDirectory()) {
files[] files = file.listFiles();
if (files == null) return;
List<File> fileList = Arrays.stream(files).sorted((f1, f2) -> f2.getName().compareToIgnoreCase(f1.getName())).collect(Collections.toList());
for (int i = fileList.size() - 1; i >= 0; --i) {
File f = fileList.get(i);
tree(f, i, index, nowFix);
}
}
}
}
3. 代码输出:
manager
|-images
| |-add.gif
| |-asf-logo.svg
| |-code.gif
| |-design.gif
| |-docs.gif
| |-fix.gif
| |-tomcat.gif
| |-update.gif
| |-void.gif
|-index.jsp
|-META-INF
| |-context.xml
|-status.xsd
|-WEB-INF
| |-jsp
| | |-401.jsp
| | |-403.jsp
| | |-404.jsp
| | |-sessionDetail.jsp
| | |-sessionsList.jsp
| |-web.xml
|-xform.xsl
4. 分析
目录名或文件名显示的格式都是 “|-文件名”,不同的是前缀,而前缀由其父文件的显示前缀和发文件在其兄弟文件排序中的序号决定。
java 文件目录树的更多相关文章
- windows cmd 生成文件目录树
一.背景 之前逛GitHub的时候看到有大佬在描述项目结构的时候使用了一种文件目录树的格式 │ └─student_information_management_system │ │ ├─build ...
- java遍历树(深度遍历和广度遍历
java遍历树如现有以下一颗树:A B B1 B11 B2 B22 C C ...
- DELPHI TreeView 文件目录树和 设置节点图标 完整
DELPHI TreeView 文件目录树和 设置节点图标 下载地址 http://download.csdn.net/detail/teststudio/6448293 需要制作 ...
- java集合树状结构及源码
java集合树状结构及源码 最近一直想看一下java集合的源码,毕竟平时用的比较多,但总是感觉是跟着习惯new出来一个对象,比如ArrayList,HashMap等等,所以就简单的看了一下,了解了一下 ...
- c# 生成文件目录树
class Program { //遍历目录名含有M00到M11的目录 //生成文件目录树(去除文件名中含有scc\Designer\designer\resx的文件) //生成的文件保存在D:\\a ...
- java分形树
import java.awt.*; import java.awt.event.*; import java.util.Random; import javax.swing.*; /** * * @ ...
- [java线段树]2015上海邀请赛 D Doom
题意:n个数 m个询问 每个询问[l, r]的和, 再把[l, r]之间所有的数变为平方(模为9223372034707292160LL) 很明显的线段树 看到这个模(LLONG_MAX为922337 ...
- java技术树+必读书籍
引子 本篇文章用技术树的形式来展示java相关技术栈.所有技术点有博客的都自带链接,没有的后续加上. 必读书籍推荐: 1.java基础: <effective java>-->四星推 ...
- Java遍历树(深度优先+广度优先)
在编程生活中,我们总会遇见树性结构,这几天刚好需要对树形结构操作,就记录下自己的操作方式以及过程.现在假设有一颗这样树,(是不是二叉树都没关系,原理都是一样的) 1.深度优先 英文缩写为DFS即Dep ...
随机推荐
- pointer-events: none
如果为某个元素样式设置了“pointer-events: none ”,事件.连接.悬浮样式都没有了 如果为a标签设置了“pointer-events: none ”,点击a标签,不会跳转到链接地址, ...
- Spark-1(概念)
1. 什么是Spark? Apache Spark™是用于大规模数据处理的统一分析引擎. spark是一个实现快速通用的集群计算平台.它是由加州大学伯克利分校AMP实验室开发的通用内存并行计算框架,用 ...
- Linux-GitLab+Jenkins持续集成+自动化部署
GitLab+Jenkins持续集成+自动化部署 什么是持续集成? (1)Continuous integration (CI) 持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个 ...
- thinkphp5 去除缓存
array_map('unlink', glob(TEMP_PATH . '/*.php')); rmdir(TEMP_PATH);
- 第一个thinkphp项目遇到的知识
本文是于项目完成后所写,基本是想到 哪写到哪,所以顺序会很乱. 1.在后台处理ueditor这种文本编辑器的时候,会遇到取值问题,如果你想要取纯文本内容:getContentTxt(),没有段落格式: ...
- 四、Tensorflow的分布式训练
TensorFlow中的集群(cluster)指的是一系列能够针对图(Graph)进行分布式计算任务(task).每个任务是同服务(server)相关联的.TensorFlow中的服务会包含一个用于创 ...
- cannot update the cursor rep,since it is read-only
操作DBF文件,开发机器读写都OK,但部署到服务器上后报:cannot update the cursor rep,since it is read-only 网上寻找解决方案英文答案比较多,也没有给 ...
- STL迭代器iterator
一:迭代器原理 迭代器是一个“可遍历STL容器内全部或部分元素”的对象. 迭代器指出容器中的一个特定位置. 迭代器就如同一个指针. 迭代器提供对一个容器中的对象的访问方法,并且可以定义了容器中对象的范 ...
- order by 的用法
select * from emp order by sal desc --将员工工资按照由高到低的顺序排列
- 【opencv实践】边缘检测
边缘检测: 一.canny算子 Canny边缘检测根据对信噪比与定位乘积进行测度,得到最优化逼近算子,也就是Canny算子.类似与 LoG 边缘检测方法,也属于先平滑后求导数的方法. 二.canny算 ...