Win32遍历目录树中所有文件的函数
函数名:list_dir
功能:返回存有所给目录中所有文件名的数组(包括子目录)。
说明:此函数用到了静态变量、函数的递归调用来实现,或可供大家参考。
其他:此函数调用了is_dir_ex来判断所给路径是否为目录,具体细节请参阅代码。

程序代码:
<?php
//判断所给路径是否为目录,代替is_dir函数。
function is_dir_ex($dirname)
{
        
$handle=opendir($dirname);
        if(
readdir($handle)=='.')
                
$result=true;
        else
                
$result=false;
        
closedir($handle);
        return 
$result;
}
//遍历目录
function list_dir($dirname)
{
        if(
$dirname[strlen($dirname)-1]!='\\')
                
$dirname.='\\';
        static 
$result_array=array();   //静态数组,保存函数返回值。
        
$handle=opendir($dirname);
        while (
$file readdir($handle))
        {
                if(
$file=='.'||$file=='..')
                        continue;
                if(
is_dir_ex($dirname.$file))
                        
list_dir($dirname.$file.'\\');  //如果是目录,递归调用。
                
else
                        
//array_push($result_array,$dirname.$file); //如果是文件,存入数组。
                        
$result_array[]=$dirname.$file;
        }
        
closedir($handle);
        return 
$result_array;

}
//测试程序,列出c:\php4\目录下所有文件
$array=list_dir('c:\\php4');
foreach(
$array as $value)
{
        echo 
$value;
        echo 
"<br>";
}
?>