今天用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 - -的用途就在这里。目的就是。遍历完成以后返回上一层。继续遍历。牛逼吧。。、