Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Re: Contar archivos de una web.

3 views
Skip to first unread message

nilopa

unread,
Sep 5, 2016, 5:41:24 PM9/5/16
to
~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++;
}

}
}
}
?>
0 new messages