php遍历所有文件及文件夹的方法 .
1.方法一:
[php]
- <?
- $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;
- ?> <? $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]
- <?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>";
- }
- ?> <?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.方法三:
[c-sharp]
- <?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>";
- }
- ?> <?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]
- <?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>";
- }
- ?>