国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

遍歷生成目錄樹(shù)

2019-11-15 02:00:46
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
遍歷生成目錄樹(shù)一、序言

  在寫上一篇博客的時(shí)候,需要用到目錄樹(shù)結(jié)構(gòu)來(lái)展示我的文件結(jié)構(gòu),于是乎吃力不討好的把所有文件夾和文件都手動(dòng)的”遍歷“了一邊。后來(lái)我就想,這樣太容易出錯(cuò)了,而且很費(fèi)力氣,于是就想著寫個(gè)php腳本來(lái)遍歷一個(gè)目錄下面的文件及文件夾,并生成目錄樹(shù),方便以后再有需要用到目錄樹(shù)結(jié)構(gòu)的地方,直接運(yùn)行就行了。目前腳本生成的目錄樹(shù)結(jié)構(gòu)可以直接通過(guò)瀏覽器查看,也可以下載生成txt文件。

二、思路介紹

  生成目錄樹(shù)的思路很簡(jiǎn)單,遍歷當(dāng)前文件夾下面的內(nèi)容,碰到”.“和”..“直接跳過(guò),碰到文件夾則遞歸調(diào)用,碰到文件則先保存到數(shù)組中,等當(dāng)前文件夾遍歷完之后吧數(shù)組中的文件拼接起來(lái),這個(gè)操作就是生成目錄樹(shù)了,生成之后還有一步操作,顯示或者下載目錄樹(shù)。書寫的過(guò)程中還有一些細(xì)節(jié)問(wèn)題,這個(gè)要等到開(kāi)發(fā)的時(shí)候才會(huì)有。為了好理解,好擴(kuò)展,我將本來(lái)一個(gè)函數(shù)可以完成的事放入一個(gè)類中,讓遍歷文件夾的思路更加清晰。

三、代碼實(shí)現(xiàn)

  思路有了,寫起代碼來(lái)就如魚得水(這也是一般為什么厲害的人告訴我們他寫代碼的時(shí)候甚至有超過(guò)一般的時(shí)間在思考,而不是立馬動(dòng)手寫代碼),好了看看部分代碼:

  3.1 生成目錄樹(shù)
 1     /** 2      * 生成目錄樹(shù) 3      */ 4     public function createTree($path, $level=0){ 5         $level       = $level; 6         $this->tree .= str_repeat($this->options["padding"], $level) 7                         .$this->options["dirView Code  3.2 顯示目錄樹(shù)
1     /**2      * 顯示目錄樹(shù)3      */4     public function showTree(){5         echo "<pre>"6              .$this->tree7              ."</pre>";8     }
View Code  3.3 下載目錄樹(shù)
1     /**2      * 下載目錄樹(shù)文件3      */4     public function downloadTree($name){5         header("Content-type:text/plain");6         header("Content-Disposition:attachment;filename={$name}.txt");7         echo $this->tree;8     }
View Code  3.4 試驗(yàn)下

  用下面的兩端代碼分別測(cè)試下:

1 $t = new Dirtree(array("padding"=>"    ","newline"=>"<br>"));2 $t->createTree("D:/autoload")->showTree("tree");
View Code

  上面這段代碼會(huì)將目錄結(jié)構(gòu)信息輸出到瀏覽器,就像圖1那樣:

圖 1 輸出目錄結(jié)構(gòu)到瀏覽器 圖 2 下載目錄樹(shù)結(jié)構(gòu)

1 $t = new Dirtree(array("padding"=>"    ","newline"=>"/r/n"));2 $t->createTree("D:/autoload")->downloadTree("tree");
View Code

  上面的代碼執(zhí)行后,瀏覽器會(huì)下載一個(gè)tree.txt文件,打開(kāi)文件的信息如圖2所示

四、 總結(jié)

  一個(gè)生成目錄樹(shù)功能基本完成了,但是這個(gè)要是有時(shí)間的話還可以在擴(kuò)展擴(kuò)展,讓他更友好的支持命令行模式。或者對(duì)輸出的內(nèi)容做做強(qiáng)化,讓文件夾可以折疊(js實(shí)現(xiàn))。

  本文版權(quán)歸作者iforever(luluyrt@163.com)所有,未經(jīng)作者本人同意禁止任何形式的轉(zhuǎn)載,轉(zhuǎn)載文章之后必須在文章頁(yè)面明顯位置給出作者和原文連接,否則保留追究法律責(zé)任的權(quán)利。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 石楼县| 新巴尔虎左旗| 清水河县| 隆德县| 宝山区| 桓仁| 西林县| 岫岩| 中江县| 内乡县| 远安县| 天峨县| 西藏| 景洪市| 刚察县| 互助| 龙游县| 巨鹿县| 德阳市| 沁源县| 茶陵县| 徐汇区| 仙游县| 巴青县| 容城县| 门源| 久治县| 屯门区| 顺平县| 沧源| 永平县| 留坝县| 乌拉特后旗| 怀安县| 东乡县| 保亭| 衡水市| 东至县| 婺源县| 内丘县| 云南省|