时间:2021-07-01 10:21:17 帮助过:20人阅读
本文介绍下,用php计算指定文件夹信息的一段代码,可以统计出文件夹的数量、文件数量、以及文件夹的大小等。有需要的朋友参考下。
以下代码,实现: 计算文件夹的大小,包括子文件夹,格式化输出文件夹大小、文件数、子文件夹数信息。 如下: //代码也可以用于统计目录数 //格式化输出目录大小 单位:Bytes,KB,MB,GB //by bbs.it-home.org function getDirectorySize($path) { $totalsize = 0; $totalcount = 0; $dircount = 0; if ($handle = opendir ($path)) { while (false !== ($file = readdir($handle))) { $nextpath = $path . '/' . $file; if ($file != '.' && $file != '..' && !is_link ($nextpath)) { if (is_dir ($nextpath)) { $dircount++; $result = getDirectorySize($nextpath); $totalsize += $result['size']; $totalcount += $result['count']; $dircount += $result['dircount']; } elseif (is_file ($nextpath)) { $totalsize += filesize ($nextpath); $totalcount++; } } } } closedir ($handle); $total['size'] = $totalsize; $total['count'] = $totalcount; $total['dircount'] = $dircount; return $total; } //格式化文件大小信息 function sizeFormat($size) { $sizeStr=''; if($size<1024) { return $size." bytes"; } else if($size<(1024*1024)) { $size=round($size/1024,1); return $size." KB"; } else if($size<(1024*1024*1024)) { $size=round($size/(1024*1024),1); return $size." MB"; } else { $size=round($size/(1024*1024*1024),1); return $size." GB"; } } //调用示例 $path="/var/www/jbxue"; $ar=getDirectorySize($path); echo " 路径 : $path"; echo "目录大小 : ".sizeFormat($ar['size']).""; echo "文件数 : ".$ar['count']." "; echo "目录术 : ".$ar['dircount']." "; //print_r($ar); 打印出数组表示的内容 ?> |