php定义一个函数用于计算目录大小。(提示:函数递归调用、排除.和..、判断读取到的文件是目录就递归调用自身,否则计算文件大小并累加)
时间: 2024-12-15 20:22:36 浏览: 10
在PHP中,你可以创建一个递归函数来计算目录的总大小。这个函数通常会采用如下的设计:
```php
function calculateDirectorySize($dir, $total = 0) {
if (!is_dir($dir)) {
// 如果不是一个目录,检查是否是一个有效的文件并计算其大小
if (file_exists($dir) && is_file($dir)) {
$total += filesize($dir);
}
return $total;
}
// 遍历目录中的所有文件和子目录
$files = scandir($dir);
foreach ($files as $file) {
if ($file == '.' || $file == '..') { // 排除 . 和 .. 文件
continue;
}
// 对于每个非隐藏文件,如果是目录则递归调用自身,如果不是则累加大小
$total += calculateDirectorySize("$dir/$file", 0);
}
return $total;
}
// 调用函数并传递需要计算的目录路径
$directory_size = calculateDirectorySize('/path/to/directory');
echo "目录 '$directory_size' 的总大小: " . format_bytes($directory_size); // 格式化输出结果
阅读全文