Ele está funcionando corretamente. Só que ele só funciona no mesmo diretório onde encontram algumas pastas e arquivos.
Eu queria saber uma solução para eu listar qualquer diretório do meu PC e saber quantas pastas há nele, junto com o nome de cada pasta e quantos MB cada pasta está consumindo.
Pergunta
Rubens Mendonça
Olá amigos!
Estou com um problema em um script.
Ele está funcionando corretamente. Só que ele só funciona no mesmo diretório onde encontram algumas pastas e arquivos.
Eu queria saber uma solução para eu listar qualquer diretório do meu PC e saber quantas pastas há nele, junto com o nome de cada pasta e quantos MB cada pasta está consumindo.
Um exemplo:
Nome do diretório C:/Arquivos de Programas
PASTA 1 - 55.02 MB
PASTA 2 - 100.00 MB
PASTA 3 - 1.00 MB
Total de Pastas 3
Total de arquivos 60
Espaço total no Diretório 156,02 MB
Espero que tenham entendido!
Aqui vai o script que eu fiz.
=============================================================
<?
// error_reporting(128);
// Function that calculates the size of a file/folder in bytes
function disk_usage($location) {
if (!$location) return "";
$size = 0;
if (!is_dir($location))
$size = filesize($location);
else {
$dir = opendir($location);
while (false !== ($file = readdir($dir))) {
if ($file != "." && $file != ".." && $file != ".htaccess") {
$size += disk_usage($location."/".$file);
unset($file);
}
}
closedir($dir);
unset($dir);
}
return $size;
}
$dir = 'C:\Arquivos de programas\wamp\www\rubens';
if($dir = opendir($dir)){
while(false !== ($pasta = readdir($dir))) {
if($pasta != "." && $pasta != ".." && $pasta == basename($pasta,".php")){
$tamanho_total = disk_usage("$pasta");
$tamanho_total = round($tamanho_total / 1024 / 1024, 5);
echo "<table>
<tr><td bgcolor = \"#f1E1f5\">Nome / Tamanho da Pasta: <b>$pasta </b> - <b> $tamanho_total MB\n</b></td></tr>
</table>";
$tatal_pasta++;
}
}
}
?>
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.