php遍历所有文件及文件夹的方法 .

php遍历所有文件及文件夹的方法 .

1.方法一:

[php]

  1. <?
  2. $dir="D:";
  3. static $dir_list =0;
  4. static $file_list =0;
  5. function listfile($dir){
  6. global $dir_list,$file_list;
  7. $d = dir($dir);
  8. while ( $entry = $d->read()) {
  9. $tem_curnt=$dir."/".$entry;
  10. if($entry=="." || $entry=="..") continue;
  11. if ( is_dir( $tem_curnt)) {
  12. listfile($tem_curnt);
  13. echo "文件夹 ".$tem_curnt."<br>";
  14. $dir_list++;
  15. }
  16. elseif ( is_file($tem_curnt)) {
  17. echo "文件".$tem_curnt."<BR>";
  18. $file_list++;
  19. }
  20. }
  21. $d->close();
  22. }
  23. listfile($dir);
  24. echo "目录数:".$dir_list;
  25. echo"<br>";
  26. echo"文件数:".$file_list;
  27. ?>    <? $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]

  1. <?php
  2. function list_dir($dirpath){
  3. if($dirpath[strlen($dirpath)]-1!='/'){
  4. $dirpath.="/";
  5. }
  6. static $result_array=array();
  7. if(is_dir($dirpath)){
  8. $files_dirs=scandir($dirpath);
  9. foreach($files_dirs as $file){
  10. if($file=='.'||$file=='..'){continue;}
  11. if(is_dir($dirpath.$file)){
  12. list_dir($dirpath.$file);
  13. }else{
  14. array_push($result_array,$dirpath.$file);
  15. }
  16. }
  17. }
  18. return $result_array;
  19. }
  20. $array=list_dir('D:/www');
  21. foreach($array as $value){
  22. echo $value;
  23. echo "<br>";
  24. }
  25. ?>    <?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]

  1. <?php
  2. function list_dir($dirpath){
  3. if($dirpath[strlen($dirpath)-1]!="//"){$dirpath.="//";}
  4. static $result_array=array();
  5. if(is_dir($dirpath)){
  6. $handle=opendir($dirpath);
  7. while($file=readdir($handle)){
  8. if($file=="."||$file==".."){continue;}
  9. if(is_dir($dirpath.$file)){
  10. list_dir($dirpath.$file."//");
  11. }else{
  12. array_push($result_array,$dirpath.$file);
  13. }
  14. }
  15. closedir($handle);
  16. }
  17. return $result_array;
  18. }
  19. $array=list_dir("D:/www");
  20. foreach($array as $value){
  21. echo $value;
  22. echo "<br>";
  23. }
  24. ?>    <?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]

  1. <?php
  2. function list_dir($dirpath){
  3. if($dirpath[strlen($dirpath)-1]!="//"){$dirpath.="//";}
  4. static $result_array=array();
  5. if(is_dir($dirpath)){
  6. $dir=dir($dirpath);
  7. while($file=$dir->read()){
  8. if($file=="."||$file==".."){continue;}
  9. if(is_dir($dirpath.$file)){
  10. list_dir($dirpath.$file."//");
  11. }else{
  12. array_push($result_array,$dirpath.$file);
  13. }
  14. }
  15. $dir->close();
  16. }
  17. return $result_array;
  18. }
  19. $array=list_dir("D:/www");
  20. foreach($array as $value){
  21. echo $value;
  22. echo "<br>";
  23. }
  24. ?>