Hola a todos, estoy modificando un código para que pueda contabilizar el tamaño de todos los archivos que estan en los directorios y subdirectorios, lo que vi por internet solo contabilizaba los directorios mas no los subdirectorios dentro de la misma.
El código que hice
Código PHP:
<?
echo $ruta= "/home/valuarteandina/public_html/prueba/";
echo '<br>';
echo $_eltamano=0;
echo '<hr>';
function listar_directorios_ruta($ruta,$_eltamano){
if (is_dir($ruta)) {
if ($dh = opendir($ruta)) {
while (($file = readdir($dh)) !== false) {
echo '<h3>Archivo a Analizar '.$file.' - Tamano contado hasta aqui: '.$_eltamano.'</h3>';
if (is_dir($ruta . $file) && $file!="." && $file!=".."){
echo "<br>Directorio: $file";
echo ' <font color="#00CC33">total contado hasta aqui: '. $_eltamano.'</font><br>';
$laruta=$ruta.$file;
listar_directorios_ruta($laruta."/", $_eltamano);}
else if(is_file($ruta . $file))
{
echo '<br><b>'.$file.' es archivo</b> ';
$tamano=filesize($ruta . $file);
$_eltamano+=$tamano;
echo '<font color="#3399FF">Tamano del archivo: '.$tamano.'</font> ';
echo '<font color="#FF0000">Total contado hasta aqui: '.$_eltamano.'</font>';
}else{ echo '<br>'.$file.' no es archivo';
}}
closedir($dh);}}else
{echo "<br>No es ruta valida";}
echo '<br><b><font color="#055e74">vamos a retonar este tamano total: '.$_eltamano.'</font></b><hr>';
return $_eltamano;
}
echo '<h1>Dato Final de espacio en Bytes: '.$_final=listar_directorios_ruta($ruta, $_eltamano).'</h1>';
echo '<br>';
?>
Tengo la variable
$_eltamano que es para sumar el total de todos los tamaños de los archivos, pero hay un punto en que hace return y vuelve y tomar el valor inicial de esta que es
0. para que al final solo me muestre el tamaño del ultimo archivo.
Me explico, corriendo el codigo:
Lo unico que yo deseo es que me sume todos los tamaños, y me muestre el total. Mi situacion es para despues mostrarle al cliente en donde estan los mayores archivos en x directorios.
Un saludo y gracias