Foros del Web » Programando para Internet » PHP »

Problema listar archivos de un directorio

Estas en el tema de Problema listar archivos de un directorio en el foro de PHP en Foros del Web. Buenas, utilizo el siguiente código para listar los archivos de un directorio que le paso: Código: if ($gestor = opendir($dir)) { while (false !== ($archivo ...
  #1 (permalink)  
Antiguo 10/02/2009, 02:54
 
Fecha de Ingreso: febrero-2009
Mensajes: 29
Antigüedad: 15 años, 9 meses
Puntos: 1
Busqueda Problema listar archivos de un directorio

Buenas, utilizo el siguiente código para listar los archivos de un directorio que le paso:

Código:
if ($gestor = opendir($dir)) {
    while (false !== ($archivo = readdir($gestor))) {
        if ($archivo != "." && $archivo != "..") {
            $archivos[] = $archivo;
        }
    }
    closedir($gestor);
}
$total_archivos = count($archivos);
$total_archivos = $total_archivos+1; 
$imgnueva="documentos".$rnueva."/".$img2[count($img2)-2]."/".$rnueva."_".$total_archivos.".jpg";
if(file_exists($img)) { 
copy($img,$imgnueva);
Con este código lo que hago es contar los archivos para darle un nuevo nombre a un nuevo fichero que copio con la instrucción copy() pero ocurre a veces que el total_archivos parece que no se incremente, y entonces me machaca el fichero con el mismo nombre, y si lo vuelvo a copiar hace lo mismo, pero he observado que por ejemplo si esto ocurre cuando hay 3 ficheros en el directorio y se esta machacando el numero 3 todo el rato, si copio un fichero cualkiera y lo meto en ese directorio, quedando de esta manera 4 ficheros, observo que la siguiente vez que ejecuto el copy entonces si que ya vuelve a incrementar bien el total_archivos, y ya cada vez que lo ejecuto lo hace bien.

Alguien me puede decir donde me puede estar fallando?
Gracias de antemano
  #2 (permalink)  
Antiguo 10/02/2009, 06:22
 
Fecha de Ingreso: agosto-2007
Mensajes: 345
Antigüedad: 17 años, 3 meses
Puntos: 21
Respuesta: Problema listar archivos de un directorio

Yo meteria un indice al array $archivos.

EJ:

Código PHP:
$i 0;
while (
false !== ($archivo readdir($gestor))) {
        if (
$archivo != "." && $archivo != "..") {
            
$archivos[$i] = $archivo;
        }
$i++;
    } 
  #3 (permalink)  
Antiguo 10/02/2009, 06:53
 
Fecha de Ingreso: febrero-2009
Mensajes: 29
Antigüedad: 15 años, 9 meses
Puntos: 1
De acuerdo Respuesta: Problema listar archivos de un directorio

He probado con los indices que me comentas y la cosa seguia igual
pero he cambiado el código por este otro que he encontrado por internet, y parece que ya no da el problema, pero no le encuentro la explicación.

Código:
$dh  = opendir($dir); 
while (false !== ($nombre_archivo = readdir($dh))) { 
   $archivos[] = $nombre_archivo; 
} 
$total_archivos = count($archivos);
$total_archivos = $total_archivos+1;

Saludos y gracias
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 21:23.