Calculer la taille d'un dossier
Posté : 12 nov. 2005, 02:27
j'avais du temps a perdre alors j'ai fais une fonction qui compte la taille d'un dossier en additionant la taille de tous les fichiers, résursif bien sur

<?php
/*
Liscence : GPL
Author : fab
Mail : [email protected]
*/
/**
@function calc_size
@param text dir rép dont on veut connaitre la taille
@return numeric
formate la taille retourné par la fonction calc_size_Rdir
*/
function calc_size($dir)
{
$size = calc_size_Rdir($dir);
$filesizename = array(" Bytes", " KB", " MB", " GB", " TB", " PB", " EB", " ZB", " YB");
return round($size/pow(1024, ($i = floor(log($size, 1024)))), 2) . $filesizename[$i];
}
/**
@function calc_size_Rdir
@param text dir_start dossier dont on va calculer la taille
@return numeric
calcul de la taille d'un dossier en ajouter celle de ses fichiers
*/
function calc_size_Rdir($dir_start)
{
$size = 0;
$open = opendir($dir_start);
while($file = readdir($open))
{
if($file != '.' && $file != '..')
{
if(is_dir($dir_start .'/'.$file))
{
$new_dir = $dir_start .'/'.$file;
$size = $size + calc_size_Rdir($new_dir);
}
else
{
$size = $size + filesize($dir_start .'/'.$file);
}
}
}
return $size;
}
?>
example d'utilisation :
<?php
$dir = getcwd();
$size = calc_size($dir);
echo $size;
?>
dans mon cas ça retourne 14 MB