Возможно ли узнать средствами PHP размер n-го каталога.
Функцией disk_total_space() он мне выдает размер винчестера. Даже если я указываю путь к каталогу.
Ось: Всеми любимая Windows XP
$dir = "C:/имя_каталога";
if (is_dir($dir)) {
$size = 0;
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
$size = $size + filesize($dir."/".$file);
}
closedir($dh);
}
print "Размер каталога: $size";
}
Ivantrs писал(а):В данном случае посчитается размер ФАЙЛОВ в указанном катологе, НО без учета всех файлов, находящихся во вложенных папках...
Ivantrs писал(а):Похоже, что размер файлов в папке придется считать самому
<html><head>
<title>Размер файлов в каталоге вместе с вложенными</title>
</head><body>
<?php
//Если файлов в каталоге очень много, то скрипт не успевает отработать за дефолтные 30 сек.
ini_set("max_execution_time","60");
//$dir = "С:\\это\\путь\\до\\нужного\\каталога";
$dir="C:\\www";
$result = mysizedir($dir);
print "Размер файлов в каталоге $dir = $result байт.";
function mysizedir($dir){
if (is_dir($dir)) {
$size = 0;
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
$dirfile = $dir."/".$file;
if ($file != "." && $file !=".."){
if(filetype($dirfile) == "dir"){
$size = $size + mysizedir($dirfile);
}else{
$size = $size + filesize($dirfile);
}
}
}
closedir($dh);
}
}
return $size;
}
?>
</body></html>
function mysizedir($dir){
if (is_dir($dir)) {
$size = 0;
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
$dirfile = $dir."/".$file;
if ($file != "." && $file !=".."){
if (is_dir($dirfile)){
$size = $size + mysizedir($dirfile);
}else{
$size = $size + filesize($dirfile);
}
}
}
closedir($dh);
}
}
return $size;
}
zk писал(а):Это же стандартная задача, и она естественно описана в каментах к мануалу по PHP, http://php.hsdn.org/filesize
Rostov114 писал(а):Для себя там ничего не нашел.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12