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

Russian Airlines Company "Airlen"

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

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

 

Декабрь 2023
Пн Вт Ср Чт Пт Сб Вс
 123
45678910
11121314151617
18192021222324
25262728293031

Сервер: 08.12.2023 11:12