Foros del Web » Programando para Internet » PHP »

recorrer Directorios,Subdirectorios, Mostrar Archivos

Estas en el tema de recorrer Directorios,Subdirectorios, Mostrar Archivos en el foro de PHP en Foros del Web. Necesito que un script me recorra los directorios y subdirectorios que este tenga mostrandome los archivos ke tiene dentro encontre el siguiente script que en ...
  #1 (permalink)  
Antiguo 13/02/2008, 21:52
Avatar de TitoCL  
Fecha de Ingreso: febrero-2008
Ubicación: Curicó
Mensajes: 10
Antigüedad: 16 años, 2 meses
Puntos: 0
recorrer Directorios,Subdirectorios, Mostrar Archivos

Necesito que un script me recorra los directorios y subdirectorios que este tenga mostrandome los archivos ke tiene dentro

encontre el siguiente script que en parte me ayuda... pero faltaria hacerle una modificacion

Código PHP:
<?
// Mostrar
$path ".";
$dir opendir($path);
while (
$elemento readdir($dir))
{
if(
is_dir($elemento) && $elemento != "." && $elemento != ".."){
echo 
"
<table width='52%' border='0' cellspacing='0' cellpadding='2'>
<table width='52%' border='0' cellspacing='0' cellpadding='2'>
<tr>
<td colspan='3' width='40%'><b>$elemento</b><hr></td>
</tr>
;
// Subdirectorios dentro de los directorios
if ($dir2 = @opendir("$elemento/")) {
  while ((
$file2 readdir($dir2)) !== false) {
  
    
$extensiones explode(".",$file2) ;
    
$nombre $extensiones[0] ;
    
$nombre2  $extensiones[1] ;
    
$file_directorio "$elemento/$file2";
    
// Mostramos los resutaltados    
if (!is_dir($file2) && $file2 != "." && $file2 != "..") {
// asignamos el tama?o de los archivo
if(filesize($file_directorio) > 1000000) {
$tamano filesize($file_directorio)/1024/1024;
$tamano ceil($tamano) ;
$tam "$tamano Mb";
}
else { 
if(
filesize($file_directorio) > 1000) {
$tamano filesize($file_directorio)/1024;
$tamano ceil($tamano) ;
$tam "$tamano Kb";

else {
$tamano filesize($file_directorio);
$tamano ceil($tamano);
$tam "$tamano bytes";

}
// fecha de subida del archivo
$elementotiempo filectime("$file_directorio");
$fecha=explode(",",date(",d,m,y,h,i",$elementotiempo));
$fecha="$fecha[1]/$fecha[2]/$fecha[3]";
$fech "$fecha";
// Distingue entre enlazar carpetas o archivos
if (is_dir($file_directorio)) {
$url_directorio "index.php?secciones=$file_directorio";
$target "";
}
else {
$url_directorio $file_directorio ;
$target "target='_blank'";
}
// Imagen
if (is_dir($file_directorio)) {
$imagen_directorio "carpeta";
}
else {
$imagen_directorio $nombre2 ;
}
// Mostramos los resultados
    
echo "<td> <img src='$imagen_directorio.gif' border='0'> <a href='$url_directorio' $target>$file2</a></td>
    <td width='30%'>$tam</td>
    <td width='30%'>$fech</td>
    </tr></tr>"
;
  }
  }
  
closedir($dir2);
  echo 
"<br><br><br>";

}
// fin subdirectorios dentro de los directorios
}

}
closedir($dir);
echo 
"</table></table>";
// secciones
if($secciones == "") { $path3 "."; }
if(
$secciones != "") { $path3 $_GET["secciones"]; }
if(
$secciones != "") { $sec "<a  href='javascript:history.go(-1);'>.. Atras</a><br><br>";}
if(
$secciones != "") { $seccion "<b>$secciones</b><hr>$sec";}

if (
$dir3 = @opendir($path3)) {
echo 
"<table width='52%' border='0' cellspacing='0' cellpadding='2'>
<tr>
<td colspan='3' width='40%'>$seccion</td>
</tr>"
;
  while ((
$file3 readdir($dir3)) !== false && $secciones) {
  
    
$extensiones explode(".",$file3) ;
    
$nombre $extensiones[0] ;
    
$nombre2  $extensiones[1] ;
    
$file_directorio "$secciones/$file3";
    
// Mostramos los resutaltados    
if ($file3 != "." && $file3 != "..") {
// asignamos el tama?o de los archivo
if(filesize($file_directorio) > 1000000) {
$tamano filesize($file_directorio)/1024/1024;
$tamano ceil($tamano) ;
$tam "$tamano Mb";
}
else { 
if(
filesize($file_directorio) > 1000) {
$tamano filesize($file_directorio)/1024;
$tamano ceil($tamano) ;
$tam "$tamano Kb";

else {
$tamano filesize($file_directorio);
$tamano ceil($tamano);
$tam "$tamano bytes";

}
// fecha de subida del archivo
$elementotiempo filectime("$file_directorio");
$fecha=explode(",",date(",d,m,y,h,i",$elementotiempo));
$fecha="$fecha[1]/$fecha[2]/$fecha[3]";
$fech "$fecha";
// Distingue entre enlazar carpetas o archivos
if (is_dir($file_directorio)) {
$url_directorio "index.php?secciones=$file_directorio";
}
else {
$url_directorio $file_directorio ;
}
// Imagen
if (is_dir($file_directorio)) {
$imagen_directorio "carpeta";
}
else {
$imagen_directorio $nombre2 ;
}
// Mostramos los resultados
    
echo "<td> <img src='$imagen_directorio.gif' border='0'> <a href='$url_directorio'>$file3</a></td>
    <td width='30%'>$tam</td>
    <td width='30%'>$fech</td>
    </tr></tr>"
;
  }
  }
  
closedir($dir3);
  echo 
"</table>";
}
// fin secciones
?>
este script sirve para mostrarme los archivos en la siguiente estructura de directorios

tengo este .php en

galeria/directorios.php
galeria/albumes/foto1.jpg foto2.jpg ... etc etc

pero la modificacion que tengo que hacer es porque la estructura que yo uso es la siguiente

galeria/directorios.php
galeria/Usuario1/Album1/foto1.jpg foto2.jpg ... etc etc
galeria/Usuario1/Album2/foto1.jpg foto2.jpg ... etc etc
galeria/Usuario2/Album1/foto1.jpg foto2.jpg ... etc etc
galeria/Usuario3/Album1/foto1.jpg foto2.jpg ... etc etc
galeria/Usuario3/Album2/foto1.jpg foto2.jpg ... etc etc

...blablabla

me imagino que talves haciendo un bucle antes de los demas while para recorrer los directorios de "usuario" funcionaria, intente pero no me resulto, talves la idea era buena pero no lo pude hacer correr xD, a ver si alguien me puede hechar una mano, gracias :)
  #2 (permalink)  
Antiguo 14/02/2008, 00:08
 
Fecha de Ingreso: diciembre-2004
Mensajes: 272
Antigüedad: 19 años, 4 meses
Puntos: 4
Re: recorrer Directorios,Subdirectorios, Mostrar Archivos

Hola,

creo que con esto basta:


<?

function listarArchivos( $path ){
$dir = opendir($path);
$files = array();
while ($elemento = readdir($dir)){
if( $elemento != "." && $elemento != ".."){

if( is_dir($path.$elemento) ){
listarArchivos( $path.$elemento.'/' );
}
else{
$files[] = $elemento;
}

}
}
echo $path;
for($x=0; $x<count( $files ); $x++){
echo $files[$x].", ";
}
echo "<BR>";
}

listarArchivos( './' );
?>


Espero te sirva.

Suerte!
  #3 (permalink)  
Antiguo 14/02/2008, 01:50
Avatar de TitoCL  
Fecha de Ingreso: febrero-2008
Ubicación: Curicó
Mensajes: 10
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: recorrer Directorios,Subdirectorios, Mostrar Archivos

o eme ge! OMG

excelente el script, era justo lo que necesitaba y no sabia como hacerlo, solo encontraba metodos demasiado complicados, gracias :D, a ver si termino luego lo que estoy haciendo para subirles el codigo, talves a mas de alguno le pueda servir

estoy haciendo un sistema donde un usuario pueda subir las galerias

por eso el path /Usuario/Album/fotos.....

y que luego se genere la galeria en lightwindow para que se vea bonita... al final de todo quiero hacer que puedan dejar comentarios en los albumes la gente que esta logeada... vamos ke se puede!!! :D

denuevo gracias por el codigo

Última edición por TitoCL; 14/02/2008 a las 02:32
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:39.