Ваш IP: 18.97.14.87






    Как узнать размер папки со всеми подпапками Автор adminОпубликовано 10.02.2013

    Как узнать размер папки со всеми подпапками

    Как узнать размер папки со всеми подпапками
    Как-то я столкнулся с проблемой, нужно было узнать, сколько места на хостинге занимает моя папка с картинками. Проблема была в том, что в папке много подпапок и очень много картинок. Место на хостинге ограниченное и пришлось писать скрипт, который бы запускался раз в сутки и чистил старые файлы, если размер папки с картинками превышал допустимый размер. Как-нибудь я опишу весь этот скрипт, но сейчас, я выложу только ту часть, которая отвечает за получение размера папки.

    Исходник:

    <?php
        $dirname = '/folder/'; // указываем полный путь до папки или файла
        $size = dir_size($dirname); //заносим в переменную размер папки или файла
        $formSize = format_size($size); //форматируем вывод
        echo $formSize;
        // функция для просмотра всех подпапок и всех вложенных файлов
        function dir_size($dirname) {
            $totalsize=0;
            if ($dirstream = @opendir($dirname)) {
            while (false !== ($filename = readdir($dirstream))) {
                if ($filename!="." && $filename!="..")
                {
                    if (is_file($dirname."/".$filename))
                    $totalsize+=filesize($dirname."/".$filename);
         
                    if (is_dir($dirname."/".$filename))
                    $totalsize+=dir_size($dirname."/".$filename);
                    }
                }
            }
            closedir($dirstream);
            return $totalsize;
        }
        // функция форматирует вывод размера
        function format_size($size){
             $metrics[0] = 'байт';
             $metrics[1] = 'Кбайт';
             $metrics[2] = 'Мбайт';
             $metrics[3] = 'Гбайт';
             $metrics[4] = 'Тбайт';
             $metric = 0;        
             while(floor($size/1024) > 0){
                 ++$metric;
                 $size /= 1024;
             }       
             $ret round($size,1)." ".(isset($metrics[$metric])?$metrics[$metric]:'??');
            return $ret;
        }
    ?>

    Рассказать друзьям:

    Оценить:

    (Пока оценок нет)

    Как узнать размер папки со всеми подпапками: 6 комментариев

    1. Чтобы посмотреть размеры файлов и папок в корне сайте используя функции автора этой заметки, можно воспользоваться кодом:


      $dirnameRoot = $_SERVER['DOCUMENT_ROOT'];

      if ($dirstream = @opendir($dirnameRoot)) {
      while (false !== ($filename = readdir($dirstream))) {
      if ($filename != «.» && $filename != «..») {
      if (is_dir($dirnameRoot . «/» . $filename)) {
      echo sprintf(‘%s %s’, «/» . $filename, format_size(dir_size($dirnameRoot . «/» . $filename))) . »;
      }


      if (is_file($dirnameRoot . "/" . $filename))
      echo sprintf('%s %s', "/" . $filename, format_size(filesize($dirnameRoot . "/" . $filename))) . '';
      }
      }
      }
      closedir($dirstream);

    2. Ну и сколько будет этот скрипт считать 10000 папок и лимон картинок?