PHP遍历目录并返回统计目录大小

复制代码 代码如下:

  <?php

  $dirname = "test1";

  //mkdir($dirname);

  //遍历一层目录

  function listdir($dirname) {

  $ds = opendir($dirname);

  while($file = readdir($ds)) {

  $path = $dirname.'/'.$file;

  if(is_dir($file)) {

  echo "DIR:".$file."<br>";

  if($file != "." && $file != "..") {

  listdir($file);

  }

  }

  else {

  echo "FILE:".$file . "<br>";

  }

  }

  }

  function totdir($dirname) { //对listdir稍加修改

  static $tot = 0;

  $ds = opendir($dirname);

  while($file = readdir($ds)) {

  $path = $dirname.'/'.$file;

  if(is_dir($file)) {

  //echo "DIR:".$file."<br>";

  if($file != "." && $file != "..") {

  $tot += totdir($file);

  }

  }

  else {

  //echo "FILE:".$file . "<br>";

  $tot += filesize($path);

  }

  }

  //返回总计

  return $tot;

  }

  listdir($dirname);

  echo totdir($dirname)." bytes";

  ?>