Получение размера папки

Еще одним не маловажным рецептом для работы с папками является получение размера папки, со всеми вложенными файлами и подпапками. Для реализации данного примера, хорошо подходит возможность создания рекурсивных функций. При вызове такой функции происходит проверка всех вложенных файлов – определяется их размер. В случае, когда попадается вложенная папка – подпапка, осуществляется рекурсивный вызов функции, которая перебирает файлы уже во вложенной подпапке.
Пример:
// указываем путь до папки или файла  
$dirname = '/folder/';  
// заносим в переменную размер папки или файла 
$size = dir_size($dirname);  
echo $formSize; 
 
// функция для просмотра всех подпапок  
// и всех вложенных файлов 
function dir_size($dirname) { 
  $totalsize = 0; // общий размер 
  // открываем папку 
  if ($dirstream = @opendir($dirname)) { 
    // перебираем все что находится внутри папки 
    while(($filename = readdir($dirstream))!==false){ 
      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; 
}

В результате выполнения приведенного выше скрипта, мы получим размер папки в байтах. Чтобы сделать красивый, форматированный вывод размера – перевести в Кб, Мб и тд, можно воспользоваться функцией, которая была описана в рецепте «Размер файла. Перевод байт в КБ, Мб и тд».
Теги:
размер файла
Добавлено: 29 Марта 2018 22:37:25 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...