Posted in PHP onJune 08, 2013
1.方法一:
<? $dir="D:"; static $dir_list =0; static $file_list =0; function listfile($dir){ global $dir_list,$file_list; $d = dir($dir); while ( $entry = $d->read()) { $tem_curnt=$dir."/".$entry; if($entry=="." || $entry=="..") continue; if ( is_dir( $tem_curnt)) { listfile($tem_curnt); echo "文件夹 ".$tem_curnt."<br>"; $dir_list++; } elseif ( is_file($tem_curnt)) { echo "文件".$tem_curnt."<BR>"; $file_list++; } } $d->close(); } listfile($dir); echo "目录数:".$dir_list; echo"<br>"; echo"文件数:".$file_list; ?>
2.方法二:
<?php function list_dir($dirpath){ if($dirpath[strlen($dirpath)]-1!='/'){ $dirpath.="/"; } static $result_array=array(); if(is_dir($dirpath)){ $files_dirs=scandir($dirpath); foreach($files_dirs as $file){ if($file=='.'||$file=='..'){continue;} if(is_dir($dirpath.$file)){ list_dir($dirpath.$file); }else{ array_push($result_array,$dirpath.$file); } } } return $result_array; } $array=list_dir('D:/www'); foreach($array as $value){ echo $value; echo "<br>"; } ?>
3.方法三:
<?php function list_dir($dirpath){ if($dirpath[strlen($dirpath)-1]!="//"){$dirpath.="//";} static $result_array=array(); if(is_dir($dirpath)){ $handle=opendir($dirpath); while($file=readdir($handle)){ if($file=="."||$file==".."){continue;} if(is_dir($dirpath.$file)){ list_dir($dirpath.$file."//"); }else{ array_push($result_array,$dirpath.$file); } } closedir($handle); } return $result_array; } $array=list_dir("D:/www"); foreach($array as $value){ echo $value; echo "<br>"; } ?>
4.方法四:
<?php function list_dir($dirpath){ if($dirpath[strlen($dirpath)-1]!="//"){$dirpath.="//";} static $result_array=array(); if(is_dir($dirpath)){ $dir=dir($dirpath); while($file=$dir->read()){ if($file=="."||$file==".."){continue;} if(is_dir($dirpath.$file)){ list_dir($dirpath.$file."//"); }else{ array_push($result_array,$dirpath.$file); } } $dir->close(); } return $result_array; } $array=list_dir("D:/www"); foreach($array as $value){ echo $value; echo "<br>"; } ?>
php遍历所有文件及文件夹的方法深入解析
声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@