今天用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 - -的用途就在這里。目的就是。遍歷完成以后返回上一層。繼續遍歷。牛逼吧。。、