Размер папки

serzh

Guest
Размер папки

Всё, что мне нужно узнать, так это какой функцией, можно определить размер папки с файлами?:rolleyes:
 

Найч

Алгоритмик :-)
самописной. Суммировать размер входящих файлов. Рекурсивно.
 

serzh

Guest
ну что вы тут все, enjoy, да enjoy. Наверное если спрашиваю, то незнаю как сам сделать. Не могли бы вы функцию написать, плз.
 

Фанат

oncle terrible
Команда форума
нет, не могли бы.
функция ведь тебе нужна, а не нам.
а тебе, с помощью примеров по ссылкам - раз плюнуть.
и бесплатное - заметь - обучение.
 

serzh

Guest
Примеры, есть но чё то не в тему. Эх, ладно, жадюги вы, а я думал это форум в котором всегда решат твою проблему. Буду сам думать. Но могли бы вы тогда подсказать саму суть? На словах, что из чего вычитать, а то на ум ничего абсолютно не приходит.
 

Найч

Алгоритмик :-)
Алгоритм.
0. Читаешь файл из папки.
0.5 Если это - . или .. , то continue
1. Если это файл, то прибавляешь его размер к общей сумме
2. Если папка - вызываешь эту же функцию определения размера
3. Читаешь очередной файл.
4. Если файлы закончились - return размер.

С рекурсией знаком?
 

serzh

Guest
спасибо. Но дело в том, что там может быть одна папка в одной, та в другой и тд. Как быть в этом случаи?

-~{}~ 10.06.04 21:19:

С рекурсией знаком?
сказать честно - нет.
 

serzh

Guest
Да я сделал это. Вот смотрите.
PHP:
<?// Функция
function dir_size($dir) {
$totalsize=0;
if ($dirstream = @opendir($dir)) {
while (false !== ($filename = readdir($dirstream))) {
if ($filename!="." && $filename!="..")
{
if (is_file($dir."/".$filename))
$totalsize+=filesize($dir."/".$filename);

if (is_dir($dir."/".$filename))
$totalsize+=dir_size($dir."/".$filename);
}
}
}
closedir($dirstream);
return $totalsize;

}

// Вывод в мегах (идёт не округление, а просто обрезание после точки - intval)
$dir_size_all = dir_size("C:/Video");
$dir_size_cut = $dir_size_all / 1024000;
echo intval($dir_size_cut);?>
 

serzh

Guest
а нельзя было просто df -s ? Выполнить как консольную команду.
Чё то до меня сразу не дошло...
 

Фанат

oncle terrible
Команда форума
совершенно верно.
но ценность этого решения понимаешь тоьлко сделав скриптом.
 

Фанат

oncle terrible
Команда форума
если спрашиваю, то незнаю как сам сделать
Да я сделал это. Вот смотрите.
вообще, о наличии таких чуваков я как-то не задумывался до сих пор.
свято верил в честную людскую тупость...
а тут вона, как...
 

zerkms

TDD infected
Команда форума
предложение для ф-ии dir_size:
$dir_size_cut = $dir_size_all / 1024000;
заменить на:
$dir_size_cut = $dir_size_all / 1048576;
 
Сверху