PHP文件操作 之统计目录大小

时间:2022-01-13 14:35:33
<?php
//定义一个函数 统计目录大小函数
function dirSize($dirName) { //判断目录是否存在
if (!file_exists($dirName)) {
die('目录不存在!');
} //判断是否是目录
if (!is_dir($dirName)) {
die('您所遍历的不是目录!');
} //打开目录
$d = opendir($dirName); //判断打开目录是否成功
if (!$d) {
die('打开目录失败!');
} //读取目录
while ($f = readdir($d)) { //将两个特殊目录'.'和'..'排除掉
if ($f != '.' && $f != '..') { //拼装目录的子文件地址
$filename = $dirName . '/' . $f; //判断是否是目录
if (is_dir($filename)) { //递归调用自己来统计子目录的大小
$sum += dirSize($filename);
} //判断是否是文件
if (is_file($filename)) {
$sum += filesize($filename);
}
}
} //关闭目录
closedir($d); //返回目录大小变量
return $sum;
} //调用函数
echo number_format(dirSize('../../../phpMyAdmin')/1024/1024, 2) . 'MB';