recurse_dirsize()
recurse_dirsize( string $directory, string|array $exclu…
recurse_dirsize( string $directory, string|array $exclude = null, int $max_execution_time = null )
递归地获取目录的大小。
Get the size of a directory recursively.
目录锚点:#说明#参数#返回#源码
说明(Description)
当目录包含其他目录时,由get-dirsize()用于获取该目录的大小。
参数(Parameters)
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
$directory | (string) | 必需 | 目录的完整路径。 |
$exclude | (string | array) | 可选 | 要从路径总数或路径数组中排除的子目录的完整路径。应为不带尾随斜杠的。 |
$max_execution_time | (int) | 可选 | 放弃前的最长跑步时间。几秒钟后。超时是全局的,从WordPress开始加载时开始测量。 |
返回(Return)
(int|false|null)有效目录的字节大小。如果不是,就错了。如果超时,则为空。
源码(Source)
/** * Get the size of a directory recursively. * * Used by get_dirsize() to get a directory's size when it contains * other directories. * * @since MU * @since 4.3.0 $exclude parameter added. * * @param string $directory Full path of a directory. * @param string $exclude Optional. Full path of a subdirectory to exclude from the total. * @return int|false Size in MB if a valid directory. False if not. */ 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; }
更新版本 | 源码位置 | 使用 | 被使用 |
---|---|---|---|
MU (3.0.0) | wp-includes/functions.php:7500 | 3 | 2 |
类别:WordPress 函数手册、
本文收集自互联网,转载请注明来源。
如有侵权,请联系 wper_net@163.com 删除。
还没有任何评论,赶紧来占个楼吧!