Contar archivos de una web.

11/12/2006 - 22:17 por ~jose~ | Informe spam
Hola, que tal?
Estoy interesado en poner en mi web un código que me cuente todos los
archivos que tengo alojados en la web y también quisiera saber la suma
del tamaño de todos.
No quiero que me cree un listado con todos los archivos y sus tamaños,
quisiera solo que me cuente el numero de archivos y el total de megas.

Gracias, un saludo,
jose
 

Leer las respuestas

#1 nilopa
05/09/2016 - 23:41 | Informe spam
~jose~ escribió el 11/12/2006 22:17 :
Hola, que tal?
Estoy interesado en poner en mi web un código que me cuente todos los
archivos que tengo alojados en la web y también quisiera saber la suma
del tamaño de todos.
No quiero que me cree un listado con todos los archivos y sus tamaños,
quisiera solo que me cuente el numero de archivos y el total de megas.

Gracias, un saludo,
jose


Si el hosting tiene PHP, este script te muestra una lista de cada directorio hasta el nivel de detalle que le digas (formulario), contando archivos y tamaño acumulado de forma recursiva.

Copia el código que sigue en un archivo directorios_hosting.php (u otro nombre que quieras), súbelo al servidor y ejecútalo desde un navegador:
=======================
<?php
if (isset($_POST["nivel"])) {
$mostrar_hasta_nivel = $_POST["nivel"];
$comenzar_nivel_inferior = $_POST["comenzar_nivel_inferior"];
// $mostrar_hasta_nivel = 3;

global $nivel_directorio_raiz;
global $nivel_directorio;

$path = dirname(__FILE__);
if ($comenzar_nivel_inferior == "si") {
$path = substr($path, 0, strrpos($path, "/"));
}
$nivel_directorio_raiz = count(explode("/", $path)) - 1;
$numero_fila = 1;


// Comienzo de Tabla
echo "<table border='1' cellpadding='3' cellspacing='0'>";
// Fila encabezado
echo "<tr style='font-size: 100%; font-weight: bold;' bgcolor='#e2e2e2'><td></td><td>Ruta</td><td align='center'>Nivel</td><td align='right' style='color:#0000ff;'>Ficheros</td><td align='right'>Acumulado fich.</td><td align='right'>Directorio</td><td align='right' style='color:#0000ff;'>Tama&ntilde;o</td><td align='right'>Acumulado tama&ntilde;o</td></tr>";
// Inicio Filas de datos
echo "<tr>";

//Función que se invoca a si misma de forma recursiva según recorre el directorio raiz ($path)
FileCount($path, $mostrar_hasta_nivel, $nivel_directorio_raiz);

// Din Filas de datos
echo "</tr>";
// Fin de tabla
echo "</table>";
echo "<div style='font-size: 120%;'>";
echo "<br>Total ficheros en la ruta <b><em>" . $path . ":</em> " . number_format($count,0,",",".") . "</b><br>";
echo "Tama&ntilde;o total ficheros: <b>". number_format($acumulado_tamanho, 0,",",".") . " Kb.</b><br>";
echo "</div>";

echo "<div style='min-height: 60px;'></div>";

} else {
?>
<form name="formulario" id="formulario" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<br /><h2>Informe del Alojamiento por directorios (N&uacute;mero de Archivos y Tama&ntilde;o)</h2>
<br />Nivel de directorios a mostrar: <input type="text" name="nivel" id="nivel" value="3"><br /><br />
<input type="checkbox" name="comenzar_nivel_inferior" value="si" checked="checked"/> Comenzar en nivel de directorio inmediatamente inferior a la ubicaci&oacute;n de este m&oacute;dulo PHP<br />(<?php echo dirname(__FILE__) ?>)<br /><br />
<input type="submit" name="comenzar" id="comenzar" value="Comenzar proceso"><br /><br />
</form>
<?php
}




function FileCount($dir, $mostrar_hasta_nivel, $nivel_directorio_raiz){
global $count;
global $count_anterior;
global $suma_tamanho;
global $acumulado_tamanho;

$arr=explode('&',$dir);
foreach($arr as $val){
global $ruta_actual;

if(is_dir($val) && file_exists($val)){
global $total_directorio;
global $numero_fila;
$total_directorio = 0;

$ob=scandir($val);
foreach($ob as $file){
if($file=="."||$file==".."){
continue;
}
$file=$val."/".$file;

if(is_file($file)){
$count++;
$suma_tamanho = $suma_tamanho + filesize($file)/1024;
$acumulado_tamanho = $acumulado_tamanho + filesize($file)/1024;
$total_directorio++;
} elseif(is_dir($file)){
FileCount($file, $mostrar_hasta_nivel, $nivel_directorio_raiz);
}
}

$nivel_directorio = count(explode("/", $val)) - 1;

if ($nivel_directorio > $mostrar_hasta_nivel) {
} else {
$atributo_fila = (($numero_fila%2)==1 ? "background-color:#ffffff;" : "background-color:#f2f2f2;");
echo "<tr style='".$atributo_fila."'><td>".$numero_fila."</td><td>".$val."&nbsp;&nbsp;&nbsp;&nbsp;</td><td align='center'>".$nivel_directorio."</td><td align='right' style='color:#0000ff;'>".number_format(($count - $count_anterior),0,",",".")."</td><td align='right'>".number_format($count,0,",",".")."</td><td align='right'>".number_format($total_directorio,0,",",".")."</td><td align='right' style='color:#0000ff;'>".number_format($suma_tamanho,0,",",".")." Kb.</td><td align='right'>".number_format($acumulado_tamanho,0,",",".")." Kb.</td></tr>";

$count_anterior = $count;
$suma_tamanho = 0;
$numero_fila++;
}

}
}
}
?>

Preguntas similares