include 'tool2.php';
//D:\myphp_www\Resource
// .代表当前目录,..代表父级目录
// $dir = "D:\myphp_www\Resource";
$dir = "D:\myphp_www\PHPTutorial\WWW";
$t1 = microtime(true);
// ... 执行代码 ...
$fileSize = dir_size($dir);
echo $fileSize . "<br/>";
$fileSizeName = toSize($fileSize);
echo $fileSizeName . "<br/>";;
$t2 = microtime(true);
echo '耗时' . round($t2 - $t1, 3) . '秒<br>';
echo 'Now memory_get_usage: ' . memory_get_usage() . '<br />';
tool2文件
function dir_size($dir){
$size = 0; //初始大小为0
if (is_dir($dir)){
$dh = opendir($dir); //打开目录,返回一个目录流
while(false !== ($file = @readdir($dh))){ //循环读取目录下的文件
if($file !='.' and $file !='..'){
$path = $dir.'/'.$file; //设置目录,用于含有子目录的情况
if(is_dir($path)){
$size +=dir_size($path); //递归调用,计算目录大小
}elseif(is_file($path)){
$size += filesize($path); //计算文件大小
}
}
}
closedir($dh); //关闭目录流
}else{
echo "路径不是文件夹路径";
}
return $size; //返回大小
}
//把文件或目录的大小转化为容易读的方式
function toSize($size){
$dw =''; //指定文件或目录统计的单位方式
if($size>pow(2,30)){
$dw="GB";
$size=round($size/pow(2,30),2);
}
else if($size>pow(2,20)){
$dw="MB";
$size=round($size/pow(2,20),2);
}
else if($size>pow(2,10)){
$dw="KB";
$size=round($size/pow(2,10),2);
}
else
{
$dw="bytes";
}
return $size.$dw;
}
输出的结果: