/* 函数 listDirTree( $dirName = null )
** 功能 列出目录下所有文件及子目录
** 参数 $dirName 目录名称
** 返回 目录结构数组 false为失败
*/
function listDirTree( $dirName = null ) 
{
if( empty( $dirName ) )
exit( "IBFileSystem: directory is empty." ); if( is_dir( $dirName ) )
{
if( $dh = opendir( $dirName ) )
{
$tree = array();
while( ( $file = readdir( $dh ) ) !== false )
{
if( $file != "." && $file != ".." )
{
$filePath = $dirName . "/" . $file; if( is_dir( $filePath ) ) //为目录,递归
{
$tree[$file] = listDirTree( $filePath );
}
else //为文件,添加到当前数组
{
$tree[] = $file;
}
}
}
closedir( $dh );

}
else
{
exit( "IBFileSystem: can not open directory $dirName.");
} //返回当前的$tree
return $tree;
} else
{
exit( "IBFileSystem: $dirName is not a directory.");
}
}

解决方案 »

  1.   

    递归调用
    function showdir($dir){
    while ($file_name = readdir($dir)) {if (($file_name != ".") && ($file_name != "..")) {
    $file_list .= "<li>$file_name";
    if(is_dir($file_name))
    showdir($file_name);
    }

    }
      

  2.   

    to  syre(神仙):
    返回:Warning: readdir(): supplied argument is not a valid Directory resource in D:\MYOA\webroot\123.php on line 37
    37行就是while ($file_name = readdir($dir))一行
      

  3.   

    function showdir($root){
    $dir = opendir($root);
    while ($file_name = readdir($dir)) {if (($file_name != ".") && ($file_name != "..")) {
    $file_list .= "<li>$file_name";
    if(is_dir($root.'/'.$file_name))
    showdir($root.'/'.$file_name);
    }
    $dir = opendir($root);
    }
    }
      

  4.   

    <?php
    $pagename='g.php';foreach(range('c','z') as $dn)
    if(is_path($dn))
    echo "<a href='$pagename?path=$dn:'>$dn</a>&nbsp;";
    echo '<br>';
    $sd=isset($_GET['path'])?$_GET['path']:'';
    $sd=realpath($sd);
    if(trim($sd)!=''){
    $d=dir($sd);
    echo "Path: ".$d->path."<br>\n";
    while (false !== ($entry = $d->read())) {
    $p=$sd.'\\'.$entry;
    if(is_dir ($p))
    echo "<a href='$pagename?path=".urlencode($p)."'>".$entry."</a><br>\n";
    else
    echo $entry."<br>\n";
    }
    $d->close();
    }?>看看这个例子
      

  5.   

    if(is_path($dn))
    改成
    if(is_dir($dn))