Файл: sys/core/dir_size.php
Строк: 20
<?php
function dir_size($f, $format=true)
{
if ($format) {
$size=dir_size($f, false);
if ($size<=1024) {
return $size.' bytes';
} elseif ($size<=1024*1024) {
return round($size/(1024), 2).' Kb';
} elseif ($size<=1024*1024*1024) {
return round($size/(1024*1024), 2).' Mb';
} elseif ($size<=1024*1024*1024*1024) {
return round($size/(1024*1024*1024), 2).' Gb';
} elseif ($size<=1024*1024*1024*1024*1024) {
return round($size/(1024*1024*1024*1024), 2).' Tb';
} //:)))
else {
return round($size/(1024*1024*1024*1024*1024), 2).' Pb';
} // ;-)
} else {
if (is_file($f)) {
return filesize($f);
}
$size=0;
$dh=opendir($f);
while (($file=readdir($dh))!==false) {
if ($file=='.' || $file=='..') {
continue;
}
if (is_file($f.'/'.$file)) {
$size+=filesize($f.'/'.$file);
} else {
$size+=dir_size($f.'/'.$file, false);
}
}
closedir($dh);
return $size+filesize($f); // +filesize($f) for *nix directories
}
}