Hey, I think I mis-understood you and my first version didn't do what you want, so I
added what you needed.
<?php
function DirStat($directory) {
global $FolderCount, $FileCount, $FolderSize;
chdir($directory);
$directory = getcwd();
$open = opendir($directory);
if($open) {
while($file = readdir($open)) {
if($file == ".." || $file == ".") continue;
if(is_file($file)) {
$FileCount++;
$FolderSize += filesize($file);
} elseif(is_dir($file)) {
$FolderCount++;
}
}
if($FolderCount > 0) {
$open2 = opendir($directory);
while($folders = readdir($open2)) {
$folder = $directory."/".$folders;
if($folders == ".." || $folders == ".") continue;
if(is_dir($folder)) {
echo DirStat($folder);
}
}
closedir($open2);
}
closedir($open);
}
}
function ByteSize($bytes) {
$size = $bytes / 1024;
if($size < 1024){
$size = number_format($size, 2);
$size .= "kb";
} else {
if($size / 1024 < 1024) {
$size = number_format($size / 1024, 2);
$size .= "mb";
} else {
$size = number_format($size / 1024 / 1024, 2);
$size .= "gb";
}
}
return $size;
}
$dir = getcwd();
DirStat("tmp", 0);
chdir($dir);
$FolderSize = ByteParse($FolderSize);
echo $FileCount;
echo "</p>\n";
echo $FolderSize;
?>
The DirStat() function is almost unchanged except that it now passes out the byte size
of the directories read. I also threw in a chdir() to get you back to your working
directory. The major addition here is the ByteSize() function. That function takes
the integer which is your total size of the directory and converts it into a nice
formatted number either in kb, mb, or gb accordingly. You'll find it uses true file
size as well, not "industry standard" sizing.
Enjoy,
Nathan Taylor
----- Original Message -----
From: Ms Carlsson
To: [EMAIL PROTECTED]
Sent: Friday, October 03, 2003 2:44 PM
Subject: [PHP] dir size
is it possible to count a size of a dir and all sub dirs in php ? and if,
how?
thanx
_________________________________________________________________
L�ttare att hitta dr�mresan med MSN Resor http://www.msn.se/resor/
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php