| |
|
|
| | Доброго времени суток!
На Вашем форуме есть скрипт для опредения размера каталогов.
При разборе столкнулся с небольшими трудностями.
Не могу разобраться с функцией opendir ();
Как определить размер папок, которые находятся не в текущем каталоге, а на уровень выше?
Почему не работает функция:
$dir = opendir("../");
$dir = opendir("../users/");
и.т.д.
???
Ниже приведен сам скрипт
// Функция определения размера заданной директории начало
function GetSizeDir($dirname)
{
$size = 0;
// открываем и читаем файлы из директории
$dir = opendir($dirname);
while($file = readdir($dir))
{
if($file == "." || $file == "..")
continue;
// если считанный файл - папка, рекусривно определяем размер этой папки
if(filetype("$dirname/$file") == "dir")
$size += GetSizeDir("$dirname/$file");
// иначе прибавляем к общему размеру размер файла
else
$size += filesize("$dirname/$file");
}
return $size;
}
function GetShortSize($size)
{
// Массив величин
$metr[0] = "Bytes";
$metr[1] = "Kb";
$metr[2] = "Mb";
$metr[3] = "Gb";
$metr[4] = "Tb";
$i = 0;
$newsize = $size;
// пока значение в одной из величин (Байты, Килобайты,
// Мегабайты, Гигабайты, Террабайты) не станет меньшим единицы ...
while(($newsize / 1024) > 1)
{
// делим разер на 2^10
$newsize /= 1024;
// меняем индекс величины
$i++;
}
// формируем строку
return sprintf("%5.2f $metr[$i] ($size bytes)",$newsize);
}
// читаем текущий каталог
$dir = opendir(".");
echo "<pre><table border>\n"
."<tr><td><b>Dir</b></td><td><b>Size</b></td></tr>\n";
while($file = readdir($dir))
{
if($file == "." || $file == "..")
continue;
// если прочитана папка, определяем и выводим её размер
if(filetype($file) == "dir")
echo "<tr><td>$file</td><td>".GetShortSize(GetSizeDir($file))."</td></tr>\n";
}
echo "</table></pre>\n";
// Функция определения размера заданной директории конец | |
| |
|
|
| |
|
|
| |
для: jaroslav
(25.02.2007 в 14:00)
| | | Уберите последний слеш, вместо
<?php
$dir = opendir("../");
$dir = opendir("../users/");
?>
|
пишите
<?php
$dir = opendir("..");
$dir = opendir("../users");
?>
|
| |
| |
|
|
| |
|
|
| |
для: cheops
(25.02.2007 в 14:34)
| | | Идет такая ошибка:
Warning: filetype()
С чем это связано? | |
| |
|
|
| |
|
|
| |
для: Jaroslav
(25.02.2007 в 15:09)
| | | Как полностью выглядит предупреждение? | |
| |
|
|