递归获取目录的大小。
原型
recurse_dirsize( string $directory, string $exclude = null )
描述
get_dirsize()用于在包含其他目录时获取目录的大小。
参数
$directory
(string)
(Required)
目录的完整路径。
$exclude
(string)
(Optional)
要从总计中排除的子目录的完整路径。
返回值
(int|false)
如果是有效目录,则以MB为单位。如果没有,则为假。
源文件
路径:wp-includes/ms-functions.php
<?php
...
function recurse_dirsize( $directory, $exclude = null ) {
$size = 0;
$directory = untrailingslashit( $directory );
if ( ! file_exists( $directory ) || ! is_dir( $directory ) || ! is_readable( $directory ) || $directory === $exclude ) {
return false;
}
if ($handle = opendir($directory)) {
while(($file = readdir($handle)) !== false) {
$path = $directory.'/'.$file;
if ($file != '.' && $file != '..') {
if (is_file($path)) {
$size += filesize($path);
} elseif (is_dir($path)) {
$handlesize = recurse_dirsize( $path, $exclude );
if ($handlesize > 0)
$size += $handlesize;
}
}
}
closedir($handle);
}
return $size;
}
...
?>
其他
英文文档:https://developer.wordpress.org/reference/functions/recurse_dirsize/