java代码实现目录结构
今天用java代码来实现。像我们电脑盘符那样的目录结构。在代码开始之前首先。介绍一下。用。java代码实现目录的思想。
第一步:完成基础的。大家想。我们是如何获取文件的。是不是用File类,直接就获取了。,获取完以后我们就要猜想一下。下一个是文件内容还是目录。
第二步:遍历文件。找出谁是目录谁是文件内容。此处的思维利用的是递归思想。(不过很消耗内容喲)。
第三步:完成以上两步。我们打印出来就可以看到我们的文件了,但是,这个时候的文件,没有层次感。没有像我们电脑那样的层次。并且。这个时候,你也不知道,谁是子文件,谁是并列文件。咋办额呢。
第四步:完成层次感。利用的原理就是。添加空格字符串。其实就是,每遍历一次,我就把这个地方记录下来,标记起来。然后添加空格字符串。。这样子就完成层次感了。
直接代码走起。
package com.huojg.test.Test; import java.io.File; /*
* 用java代码实现树状目录结构
*
* **/
public class Tree {
private static int count=0;
public static void main(String[] args) {
//1.获取目录
File file=new File("D:/登陆页面");
//8.把文件爱你作为参数进行遍历
market(file); }
//2.判断是目录还是文件内容。
public static void market(File file){
//7.否则把文件的你名字打印出来
System.out.println(makeSpace(count)+"~*"+file.getName());//输出位置也很重要,必须在头部
//3.获取这个路径的下所有的文件以及目录
File[] fil=file.listFiles();
//4.判断里面是目录。使用递归继续遍历
if(fil!=null&&fil.length>0){
count++;//如果是目录加1
//5,说明是目录利用递归继续遍历
for(File fi:fil){
market(fi);
}
count--;//上面遍历加1以后还得退回来。继续遍历
}
} //6.让目录有层次感,必须有一个标记。
public static String makeSpace(int count){
//创建空格字符串
String spack="";
for(int i=0;i<count;i++){
spack+=" ";
}
return spack;
} }
结果;
~*登陆页面
~*201404170927.rar
~*css
~*main.css
~*images
~*air-balloon-1.png
~*air-balloon-2.png
~*login-bg.jpg
~*login-foot.jpg
~*login.png
~*logo-login.png
~*index.html
~*js
~*DD_belatedPNG.js
~*fun.base.js
~*jQuery.js
~*script.js
哈哈哈、这就完成了,我们用java代码来 遍历目录的效果。
不过里面需要注意的地方很多。尤其是count++与count- -这个地方的精华。理解起来也很简单。count++就是,我们已经知道这一层是目录需要,继续遍历。这个时候。遍历完成以后我们就需要回到上一层。如果有就继续,没有就下一个。count - -的用途就在这里。目的就是。遍历完成以后返回上一层。继续遍历。牛逼吧。。、
java代码实现目录结构的更多相关文章
- Eclipse JAVA项目的 目录结构 和 导入
说明:本文所有测试以java工程为例: 1. Eclipse下的java工程目录 eclipse的基本工程目录叫做workspace,每个运行时的eclipse实例只能对应一个workspace,也就 ...
- mybatis学习笔记(六)使用generator生成mybatis基础配置代码和目录结构
原文:http://blog.csdn.net/oh_mourinho/article/details/51463413 创建maven项目 <span style="font-siz ...
- JAVA WEB项目目录结构以及web应用部署的根目录,编译路径和项目根目录的区别
本文链接:https://blog.csdn.net/l00149133/article/details/78984083 web应用部署的根目录,编译路径和项目的根目录有什么区别? 直接上例子: 你 ...
- 【Django】基于Django架构网站代码的目录结构
经典的Django项目源码目录结构 Django在一个项目的目录结构划分方面缺乏必要的规范.在Django的官方文档中并没有给出大型项目的代码建议目录结构,网上的文章也是根据项目的不同结构也有适当的 ...
- 原生Java代码拷贝目录
拷贝.移动文件(夹),有三方包commons-io可以用,但是有时候有自己的需求,只能使用原生java代码,这时可以用以下几种方式进行拷贝: 1.使用系统命令(Linux)调用 此种方式对操作系统有要 ...
- Java Web工程目录结构
说明 介绍java web 工程的基本结构目录.记录java web 工程结构的学习. Java web 结构 java web严格来说分为两类工程结构:一个是工程编译目录结构,一个是工程发布目录结构 ...
- [转]Java Web工程目录结构
说明 介绍java web 工程的基本结构目录.记录java web 工程结构的学习. Java web 结构 java web严格来说分为两类工程结构:一个是工程编译目录结构,一个是工程发布目录结构 ...
- stm32点亮LED 测试代码及目录结构
. main.c - 使用PB12, PB13, PB14, PB15, PB5, PB6, PB7 这七个PB口点亮LED. 注意PB3和PB4是特殊口, 直接调用无效. #include &quo ...
- java打印树形目录结构
import java.io.File; public class MainTest { public static void main(String[] args) { String dirname ...
随机推荐
- Linux查看某个进程的磁盘IO读写情况
说明: 1.Linux下没有原生的查看IO的软件,只能额外装. 2.如果使用vmstat或者cat /proc/$PID/io,这些看的都太复杂了. 下面是安装的比较直观的软件: 1.iostat 这 ...
- 【转】MySQL5.5的my.cnf 参数详解
这篇文章很多地方只是翻译了my.cnf原始配置文件的说明 以下原文中有些参数事实上不适用于MySQL5.5,不知道原作者是否有经过实际测试,比如log-slow-queries应该写成slow-que ...
- dragon-book-exercise-answers
https://github.com/fool2fish/dragon-book-exercise-answers
- 50个最常用的UNIX/Linux命令
转自http://get.jobdeer.com/493.get 1. tar command examples Create a new tar archive. $ tar cvf archive ...
- Android - toolbar navigation 样式
1.修改title 边距 修改边距使用系统的app属性来引入使用,即: xmlns:app="http://schemas.android.com/apk/res-auto" 1 ...
- 利用DFS求联通块个数
/*572 - Oil Deposits ---DFS求联通块个数:从每个@出发遍历它周围的@.每次访问一个格子就给它一个联通编号,在访问之前,先检查他是否 ---已有编号,从而避免了一个格子重复访问 ...
- 关联模型中如果condition条件
在练习中,有一个user表和地址表,一对多的关系. 我的想法是,通过这个关联模型找出这个用户下面默认值字段为1的地址 控制器中 public function index(){ $User = D(' ...
- (转)指针的引用(*&)与指针的指针(**)
本文转载而来,转载出处:http://www.cppblog.com/doing5552/archive/2010/09/28/127994.html 在下列函数声明中,为什么要同时使用*和& ...
- 修改kafka broker.id
kafka.common.InconsistentBrokerIdException: Configured broker.id 1 doesn't match stored broker.id 0 ...
- [Other] An Overview of Arrays and Memory
One integer takes 32bit in memory, 1 byte = 8bits, therefore one integer takes 4 bytes. Now let's as ...