[PHP] Poids total d'un dossier

Résolu
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. ç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
    1. 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
      1. Cool merci ! Y'aurait t'il une possibilité d'avoir le résultat en Méga Octets ?
        -1
        1. Excellent, merci beaucoup pour ton aide !
          0
          1. Pas de quoi, c'est ma première participation ravi d'avoir pu t'aider .
            0
        2. chapeau,Deepblue
          0
          1. 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
            1. clic droit et tu vas sur proprietes du fichier
              -2
              1. Nan nan, je veux afficher ça sur un un site web en php.
                Pas sur mon ordinateur. =)
                0
            2. 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