Как узнать размер папки со всеми подпапками Автор 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;
    }
?>

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

Оценить:

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

Как узнать размер папки со всеми подпапками: 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 папок и лимон картинок?

 

Апрель 2024
Пн Вт Ср Чт Пт Сб Вс
1234567
891011121314
15161718192021
22232425262728
2930  

Сервер: 16.04.2024 11:04