PHP计算一个目录文件大小方法

时间:2022-04-07 08:17:11
<?php 

$dirfile='../hnb';

/**
*计算一个目录文件大小方法
*$dirfile:传入文件目录名
**/
function dirSize($dirfile)
{
$dir_size=0;
if($handle=@opendir($dirfile))
{
while($filename=readdir($handle))
{
if($filename!='.' && $filename!='..')
{
$subfile=$dirfile . '/' . $filename;
if(is_dir($subfile))
{
$dir_size+=dirSize($subfile); //递归再次调用
}
if(is_file($subfile))
{
$dir_size+=filesize($subfile);
}
}
}
closedir($handle);
return $dir_size;
} } function dirSize2($dirfile)
{
intval($dir_size=dirSize($dirfile)); if($dir_size>1024*1024*1024)
{
echo round($dir_size/1024/1024/1024,2)."GB";
}elseif($dir_size>1024)
{
echo round($dir_size/1024/1024,2)."MB";
}else
{
echo round($dir_size/1024,2)."KB";
}
}
echo dirSize2($dirfile); ?>