Определить размер каталога

Тема в разделе "PHP программирование", создана пользователем aka_Kail, 2 окт 2007.

Статус темы:
Закрыта.
  1. aka_Kail

    aka_Kail Гость

    Проблема..
    Надо определить размер каталога с вложенными каталогами..
    Могу нацарапать функцию с рекурсией, но!!
    каталогов много, и возможны вылеты, и в итоге неправильные данные.
    Крон подключать - тоже не то...

    ф-ция stat() не помогает (она с каталогами не дружит)...

    Если кто нить видел скрипт, определяющий размер каталога - киньте линк, плиииз!



    PS на сайте NoNaМыча (http://nnm.ru) есть линк на крякнутый PHPED 5 версии! (~50 mb)
    Kачать всем!
     
  2. @ero

    @ero Гость

    <?
    $size = '';
    size_of_dir_num('/home/test1.ru');
    // вместо /home/test1.ru - путь к директории размер которой надо узнать
    function size_of_dir_num($path)
    {

    $dir = opendir($path);
    global $size;
    while($d = readdir($dir))
    {
    if ($d == '.' || $d == '..') continue;
    if (is_file($path.'/'.$d))
    {
    $size = $size + filesize($path.'/'.$d);
    }
    else if (is_dir($path.'/'.$d)) size_of_dir_num($path.'/'.$d);
    }

    }
    echo ($size / 1024 / 1024);
    echo(' mb');
    ?>
     
  3. MajestiC

    MajestiC Гость

    Для: @ero
    Читай внимательней, просили без рекурсий.
     
  4. @ero

    @ero Гость

    интересно и как ты здесь без рекурсии хочешь обойтись?
    лично я другого решения ни вижу.

    если ты боишься за систему то можно задать глубину рекурсии.
    вылетов серьезных не будет.
     
  5. MajestiC

    MajestiC Гость

    Для: @ero
    Не видишь - не пиши.

    Человек же написал:
    То есть он ищет возможный вариант решения без рекурсий, именно за ним он и обратился на форум.
     
  6. acorn

    acorn PHP Developer

    Регистрация:
    29 авг 2004
    Сообщения:
    599
    Симпатии:
    3
    Для: MajestiC
    [offtop] а ты не оффтопь :) [/offtop]
     
  7. MajestiC

    MajestiC Гость

    Для: Acorn
    Ну как же без оффтопа =)
     
  8. aka_Kail

    aka_Kail Гость

    Ребят, спасибо, но тот код я и сам мог нацарапать...
    а теперь прикиньте - 400 папок, по 5000 фйлов в каждом???

    я думаю попробовать через ftp:// - там есть вроде ф-я для определения размера каталога.
    вот только... придётся скрипт на крон вешать на другом сайте - локально , наверно ftp не отработает... =(
     
  9. zend

    zend Гость

    Если работаем под *NIX, можно попробовать du. Через какойнить popen...
     
  10. aka_Kail

    aka_Kail Гость

    А поподробнее? ПЛИИЗ!
     
  11. aka_Kail

    aka_Kail Гость

    Ага! во! нашёл!
    <?
    system('du -s /home/www/login/papka');
    ?>
    на вывод - 108 /home/www/login/papka
    немного модернизировал - и теперь
    <?
    system('du -s -h /home/www/login/papka');
    ?>

    на вывод - 108К /home/www/login/papka

    то что надо!

    ну а уж отделить зёрна от плёвел - плёвое дело :)
    Спасибо за пинок в нужную сторону..
    Думаю тему можно закрыть.
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей