Here's some useful code all put together in a class.
This class could be easily extended to return other info about a directory as well. Please send back a copy if you do so.
Usage shown below.
matt.
<?PHP
class DirectoryInfo
{
//recursively gets the size of a directory.
function get_dir_size($dir, &$size)
{
$handle = opendir($dir);
while( $file = readdir($handle) )
{
if($file != '.' and $file != '..')
{
is_dir("$dir/$file") ? $this->get_dir_size("$dir/$file", $size) : $size += filesize("$dir/$file");
}
}
return $this->display_size($size);
}
// File size calculations - for display.
function display_size($file_size)
{
if($file_size >= 1073741824)
{
$file_size = round($file_size / 1073741824 * 100) / 100 . " Gb";
}
elseif($file_size >= 1048576)
{
$file_size = round($file_size / 1048576 * 100) / 100 . " Mb";
}
elseif($file_size >= 1024)
{
$file_size = round($file_size / 1024 * 100) / 100 . " Kb";
}
else
{
$file_size = $file_size . " bytes";
}
return $file_size;
}
}
$d = new DirectoryInfo;
echo "<P>" . $d->get_dir_size("C:/Inetpub", $size);
?>