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

原文地址:https://www.cnblogs.com/huojg-21442/p/7212249.html