思路有了,寫起**來就如魚得水(這也是一般為什麼厲害的人告訴我們他寫**的時候甚至有超過一般的時間在思考,而不是立馬動手寫**),好了看看部分**:
1/**view code2* 生成目錄樹3*/
4public
function createtree($path, $level=0)
17if(!$this->options["showhide"] && substr($dir, 0, 1) == ".")
20$dir = $path.directory_separator.$dir;21
if(is_dir($dir
)) elseif (is_file($dir
))26}27
closedir($dirhandle
);28
foreach ($files
as$key => $value
) 34
return
$this
;35 }
1/**view code2* 顯示目錄樹3*/
4public
function
showtree()
view code
1/**
23*/4
public
function downloadtree($name
).txt");
7echo
$this->tree;
8 }
用下面的兩端**分別測試下:
1view code$t = new dirtree(array("padding"=>" ","newline"=>"
"));
2$t->createtree("d:\autoload")->showtree("tree");
上面這段**會將目錄結構資訊輸出到瀏覽器,就像圖1那樣:
乙個生成目錄樹功能基本完成了,但是這個要是有時間的話還可以在擴充套件擴充套件,讓他更友好的支援命令列模式。或者對輸出的內容做做強化,讓資料夾可以摺疊(js實現)。
遍歷目錄樹
cpath os.getcwd 如果目錄名字為中文 需要轉碼處理 upath unicode cpath,utf 8 for filename in os.listdir upath print filenameimport os for foldername,subfolders,filename...
ftw遍歷目錄樹
表頭檔案 include 定義函式 int ftw const char dir,int fn const file,const struct stat sb,int flag int depth 函式說明 ftw 會從引數dir指定的 目錄開始,往下一層層地遞迴式遍歷子 目錄。ftw 會傳三個引數...
nftw遍歷目錄樹
表頭檔案 include 定義函式 int nftw const char dir,int fn const char file,const struct stat sb,int flag,struct ftw s depth,int flags 函式說明 nftw 與ftw 很像,都是從引數dir...