ОАО «Российская Авиакомпания ЭРЛЕН»

Russian Airlines Company "Airlen"

Ваш внешний 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;
    }
?>

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

Оценить:

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

 

Январь 2025
Пн Вт Ср Чт Пт Сб Вс
 12345
6789101112
13141516171819
20212223242526
2728293031  

Сервер: 16.01.2025 02:01