Ver Mensaje Individual
  #9 (permalink)  
Antiguo 13/03/2007, 10:35
Avatar de estibaliz2006
estibaliz2006
 
Fecha de Ingreso: noviembre-2006
Mensajes: 439
Antigüedad: 17 años, 5 meses
Puntos: 1
Re: tamaños de directorios (cuanto ocupa lo que hay dentro)

pues no sé, chico. algo debo estar haciendo mal porque nada. te cuento. implemento el código que me dices en mi aplicación:

Código PHP:
include("conex.php"); 
$cnx mysql_query("SELECT nombre, apellidos, email FROM tabla order by apellidos ASC"); 
$num_reg=mysql_num_rows($cnx);
if(
$num_reg== 0)
{
print 
"Actualmente no hay clientes registrados";
}
else

while (
$row=mysql_fetch_array($cnx))
{
$nombre "".$row['nombre']."";
$apellidos "".$row['apellidos']."";    
$email "".$row['email'].""

///como el nombre del directorio es el nombre del usuario, recojo ese dato en la variable path, al que le indico que los directorios creados están a su vez en el directorio modulos, con lo cual, la dirección de un directorio en concreto será modulos/nombrequesea
if(!isset($path))  
   {  
$path "modulos/$nombre";  
   }
//sustituyo donde pone directorio por la variable path en la función dirsize
function dirsize($path)
{
    
// Init
    
$size 0;
 
    
// Trailing slash
    
if (substr($path, -11) !== DIRECTORY_SEPARATOR) {
        
$path .= DIRECTORY_SEPARATOR;
    }
 
    
// Create the stack array
    
$stack = array($path);
 
    
// Iterate stack
    
for ($i 0$j count($stack); $i $j; ++$i) {
        
        
// Add to total size
        
if (is_file($stack[$i])) {
            
$size += filesize($stack[$i]);
 
        }
        
        
// Add to stack
        
elseif (is_dir($stack[$i])) {
            
// Read directory
            
$dir dir($stack[$i]);
            while (
false !== ($entry $dir->read())) {
                
// No pointers
                
if ($entry == '.' || $entry == '..') {
                    continue;
                }
 
                
// Add to stack
                
$add $stack[$i] . $entry;
                if (
is_dir($stack[$i] . $entry)) {
                    
$add .= DIRECTORY_SEPARATOR;
                }
                
$stack[] = $add;
 
            }
 
            
// Clean up
            
$dir->close();
        }
 
        
// Recount stack
        
$j count($stack);
    }
 
    return 
$size;
}
$peso dirsize($row["$path"]); 
bueno, y tiro palante con lo demás. luego hago
Código PHP:
<?php echo ("".$apellidos.", ".$nombre." -".$email."-".$peso);
}
mysql_free_result($cnx)
?>
bien. pues esto, que en principio debería funcionar, a mí me da estos errores:

Notice: Undefined index: modulos/juanantonio in paneladmin.php on line 483
(hace referencia a esta línea: $peso = dirsize($row["$path"]);)
Warning: dir(/lost+found/): failed to open dir: Permission denied in paneladmin.php on line 457
(hace referencia a esta línea: $dir = dir($stack[$i]);)
Fatal error: Call to a member function on a non-object in paneladmin.php on line 458
(hace referencia a esta línea: while (false !== ($entry = $dir->read())) {)

y así estamos. te agradezco muchísimo las molestias que te estas tomando conmigo, pero ya ves que esto no va ni a la de tres...

paneladmin.php es como llamo al archivo anterior donde está el código