Foros del Web » Programando para Internet » PHP »

¿Cómo saber si es un directorio FTP?

Estas en el tema de ¿Cómo saber si es un directorio FTP? en el foro de PHP en Foros del Web. Hola, resulta que estoy realizando un script que sube archivos por FTP, el script consta también de una función que borra directorios en forma recursiva ...
  #1 (permalink)  
Antiguo 22/03/2010, 14:40
 
Fecha de Ingreso: marzo-2009
Mensajes: 47
Antigüedad: 15 años, 1 mes
Puntos: 0
¿Cómo saber si es un directorio FTP?

Hola, resulta que estoy realizando un script que sube archivos por FTP, el script consta también de una función que borra directorios en forma recursiva y aquí tengo un problema.

Lo que hago es listar el directorio usando la función ftp_nlist, y la lógica sería recorrer el array devuelto con lo que si una entrada es un fichero, borrarlo y si es un directorio, borrarlo recursivamente. El problema es que no se como diferenciar los directorios de los ficheros, ya que en el array devuelto por ftp_nlist no lo especifica, intente usar ftp_chdir pero tuve algunos problemas donde algunos directorios los detectaba como fichero.

¿Cuál sería el método ideal para saber si una entrada es un fichero o un directorio?

Un Saludo!
  #2 (permalink)  
Antiguo 22/03/2010, 15:41
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 19 años, 10 meses
Puntos: 832
Respuesta: ¿Cómo saber si es un directorio FTP?

http://php.net/manual/en/function.is-dir.php
  #3 (permalink)  
Antiguo 22/03/2010, 15:48
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: ¿Cómo saber si es un directorio FTP?

En los comentarios de usuarios para la funcion ftp_nlist() hay un ejemplo donde usan el tamaño del archivo para determinar si se trata de un directorio, concretamente en este comentario.

Código PHP:
Ver original
  1. $ftp_nlist = ftp_nlist($ftp_connect, ".");
  2.  
  3. //alphabetical sorting
  4.  
  5. sort($ftp_nlist);
  6. foreach ($ftp_nlist as $v) {
  7.  
  8. //1. Size is '-1' => directory
  9.   if (ftp_size($ftp_connect, $v) == -1) {
  10.  
  11. //output as [ directory ]
  12.       echo "[ " . $v . " ]<br />\n";
  13.   }
  14. }
  15. foreach ($ftp_nlist as $v) {
  16.  
  17. //2. Size is not '-1' => file
  18.   if (!(ftp_size($ftp_connect, $v) == -1)) {
  19.  
  20. //output as file
  21.       echo "" . $v . "<br />\n";
  22.   }
  23. }

Edito: Al parecer lo mas recomendable es ftp_chdir, porque ftp_size devuelve -1 en caso de error y no todos los servidores soportan la funcion.
__________________
- León, Guanajuato
- GV-Foto
  #4 (permalink)  
Antiguo 22/03/2010, 20:55
 
Fecha de Ingreso: marzo-2009
Mensajes: 47
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: ¿Cómo saber si es un directorio FTP?

Bueno, me contento con saber que probe todas las soluciones posteadas , excepto la de is_dir aunque lo tenía en mente, pero no se adaptaba mucho a la estructura actual del script, parece que tendré que adaptarlo y probar.

Si alguien tiene una solución alternativa, que la comente por favor, es bueno saber.

Gracias a los 2 por su tiempo!
Un Saludo!

Etiquetas: directorio, ftp
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 12:04.