[PHP] Poids total d'un dossier

Résolu
Randal Messages postés 99 Statut Membre -  
 dijxdream -
Bonjour,
j'aimerais savoir comment faire pour voir le poids total d'un dossier en Mo.
J'aimerais ainsi faire quelque chose de ce genre: Il y a 23.19 Mo utilisé.
Si ça pourrait afficher aussi plus prècis comme j'ai mis ce dessus, ce serait
encore mieux. Merci d'avance pour votre future réponse. Bonne soirée.

8 réponses

  1. Deepblue
     
    ça te convient ?

    <?php
    function foldersize($path) {
    $total_size = 0;
    $files = scandir($path);

    foreach($files as $t) {
    if (is_dir($t)) {
    if ($t<>"." && $t<>"..") {
    $size = foldersize($path . "/" . $t);

    $total_size += $size;
    }
    }
    else {
    $size = filesize($path . "/" . $t);

    $total_size += $size;
    }
    }
    return $total_size;
    }
    function format_size($size , $round) {
    //Size must be bytes!
    $sizes = array('B', 'kB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB');
    for ($i=0; $size > 1024 && $i < count($sizes) - 1; $i++) $size /= 1024;
    return round($size,$round).$sizes[$i];
    }
    $total_size = foldersize("Mondossier");
    echo format_size ($total_size, 2 )

    ?>
    3
  2. Deepblue
     
    Voila bon courage,

    <?php
    function foldersize($path) {
    $total_size = 0;
    $files = scandir($path);

    foreach($files as $t) {
    if (is_dir($t)) {
    if ($t<>"." && $t<>"..") {
    $size = foldersize($path . "/" . $t);

    $total_size += $size;
    }
    }
    else {
    $size = filesize($path . "/" . $t);

    $total_size += $size;
    }
    }
    return $total_size;
    }
    echo foldersize("mondossier");
    ?>
    0
  3. Randal Messages postés 99 Statut Membre 11
     
    Cool merci ! Y'aurait t'il une possibilité d'avoir le résultat en Méga Octets ?
    -1
  4. Randal Messages postés 99 Statut Membre 11
     
    Excellent, merci beaucoup pour ton aide !
    0
    1. Deepblue
       
      Pas de quoi, c'est ma première participation ravi d'avoir pu t'aider .
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. ptiguss
     
    Attention s'il y a d'autre repetroire en sous-arborescence il ne les calcule pas ;-) ... ce n'est donc pas full friendly comme technique ...
    0
  7. Utilisateur anonyme
     
    clic droit et tu vas sur proprietes du fichier
    -2
    1. Randal Messages postés 99 Statut Membre 11
       
      Nan nan, je veux afficher ça sur un un site web en php.
      Pas sur mon ordinateur. =)
      0
  8. dijxdream
     
    Pour le formatage de la taille

    class Sizer { 
         
        public static function size($file) { 
         return $this->format(filesize($file)); 
        } 
    
        public static function format($size) { 
         list($sized, $num) = $this->sizeRec($size); 
         $e = array('o', 'Ko', 'Mo', 'Go', 'To', 'XXL'); 
         $sized = round($sized, 3); 
         return array($size, $sized.$e[$num], $num); 
        } 
         
        private static function sizeRec($size, $num = 0) { 
         if ($size > 1024) 
          return $this->sizeRec($size / 1024, ++$num); 
         return array($size, $num); 
        } 
    
    } 
    list($size, $format, $exp) = Sizer::size('/path/vers/mon/fichier'); 
    echo $format;
    
    -2