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

Russian Airlines Company "Airlen"

Ваш внешний IP: 18.97.14.85

Как узнать размер папки со всеми подпапками Автор 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
Пн Вт Ср Чт Пт Сб Вс
 1
2345678
9101112131415
16171819202122
23242526272829
3031  

Сервер: 09.12.2024 01:12