php文件遍历

  

<?php

  $dirname="shangchuan/uploads";

  echo $dirname."共计大小为:".toSize(dirsize($dirname))."<br>";

  $dir=opendir($dirname); //打开文件目录

  while($fileName=readdir($dir)){   //开始遍历每一个文件
    if($fileName!="." && $fileName!=".."){  //去掉开始的本个文件夹和上层文件夹
      $file=$dirname.'/'.$fileName;    
      if(is_dir($file)){
        echo "<font color='red'>".$fileName."---".date("Y-m-d H:i:s")."---".filectime($file)."---".filetype($file)."---".toSize(dirsize($file))."---</font><br>";
      }else{
        echo "<font color='blue'>".$fileName."---".date("Y-m-d H:i:s")."---". filectime($file)."---".filetype($file)."---".toSize(filesize($file))."---</font><br>";
      }
    }
  }

  closedir($dir);
  //转换字节为常用单位
  function toSize($size){
    $dw="Bytes";
    if($size > pow(2,30)){
      $size=round($size/pow(2,30),2);
      $dw="GB";
    }else if($size > pow(2,20)){
      $size=round($size/pow(2,20),2);
      $dw="MB";
    }else if($size > pow(2,10)){
      $size=round($size/pow(2,10),2);
      $dw="KB";
    }else{
      $dw="bytes";
    }
    return $size.$dw;
  
  }
  //遍历目录计算大小
  function dirsize($dirname){
    $dirsize=0;

    $dir=opendir($dirname);

    while($filename=readdir($dir)){
      $file=$dirname."/".$filename;
      if($filename!="." && $filename!=".."){
        if(is_dir($file)){
          dirsize($file);//递归完成
        }else{
          $dirsize+=filesize($file);
        }
      }
    }

    closedir($dir);
    return $dirsize;
  }

?>

上一篇:json打不开


下一篇:Delphi中三种方法获取Windows任务栏的高度