60 inscrits



  • Visites de la page : [438]
  • Catégorie : Algorithmes
  • Modifié le : 18-11-2005
  • Site auteur : Site de l'auteur




Fonction récursive permettant de calculer la taille d'un répertoire complet en précisant le nombre de fichiers et de sous-répertoires présents.


   Code:
<?php
//Updated by Pradeep pradeep[AT]go4expert[DOT]com
//http://myslambook.co.nr

function getDirectorySize($path)
{
  
$totalsize 0;
  
$totalcount 0;
  
$dircount 0;
  if (
$handle opendir ($path))
  {
    while (
false !== ($file readdir($handle)))
    {
      
$nextpath $path '/' $file;
      if (
$file != '.' && $file != '..' && !is_link ($nextpath))
      {
        if (
is_dir ($nextpath))
        {
          
$dircount++;
          
$result getDirectorySize($nextpath);
          
$totalsize += $result['size'];
          
$totalcount += $result['count'];
          
$dircount += $result['dircount'];
        }
        elseif (
is_file ($nextpath))
        {
          
$totalsize += filesize ($nextpath);
          
$totalcount++;
        }
      }
    }
  }
  
closedir ($handle);
  
$total['size'] = $totalsize;
  
$total['count'] = $totalcount;
  
$total['dircount'] = $dircount;
  return 
$total;
}

function 
sizeFormat($size)
{
    
$sizeStr='';
    if(
$size<1024)
    {
        return 
$size." bytes";
    }
    else if(
$size<(1024*1024))
    {
        
$size=round($size/1024,1);
        return 
$size." KB";
    }
    else if(
$size<(1024*1024*1024))
    {
        
$size=round($size/(1024*1024),1);
        return 
$size." MB";
    }
    else
    {
        
$size=round($size/(1024*1024*1024),1);
        return 
$size." GB";
    }

}

$path="/httpd/html/";
$ar=getDirectorySize($path);

echo 
"<h4>Details for the path : $path</h4>";
echo 
"Total size : ".sizeFormat($ar['size'])."<br>";
echo 
"No. of files : ".$ar['count']."<br>";
echo 
"No. of directories : ".$ar['dircount']."<br>";

//print_r($ar);
?>


Aucun commentaire pour l'instant !



Nom / Pseudo :    
Email :
image de securisation du formulaire
Commentaire :




.: Easy-Script © 2002/2008 - Tous droits réservés - CNIL N°1098778 - Gén en 0.854 sec :.                        Top