Foros del Web » Programando para Internet » PHP »

No puedo eliminar los archivos del directorio

Estas en el tema de No puedo eliminar los archivos del directorio en el foro de PHP en Foros del Web. ¡Hola chicos! Vamos de cara al grano, tengo un problema con mi código y es que, yo le introduzco un directorio para que lo abra ...
  #1 (permalink)  
Antiguo 25/02/2016, 13:07
 
Fecha de Ingreso: marzo-2014
Mensajes: 168
Antigüedad: 10 años, 1 mes
Puntos: 2
Pregunta No puedo eliminar los archivos del directorio

¡Hola chicos! Vamos de cara al grano, tengo un problema con mi código y es que, yo le introduzco un directorio para que lo abra y así recoja los archivos que lo constituyen. Pero, misteriosamente o no los coge o seguidamente, en el siguiente paso de eliminar los archivos anteriormente cogidos del directorio no se eliminar.

Código PHP:
//conficion

if (isset($_REQUEST['camara1'])) {
    
    
$dir="./camara/25.02.2016";  

$directorio=opendir($dir);  

while (
$archivo readdir($directorio)) {  
     
unlink($archivo); 

}  


}

?> 
Estoy muy preocupado, no se que hacer. Atentamente,
-sergi
  #2 (permalink)  
Antiguo 25/02/2016, 13:13
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: No puedo eliminar los archivos del directorio

Ten en cuenta que readdir() sólo te da los nombres de los archivos y no la ruta completa.

Primero debes construir la ruta completa antes de usar unlink().

Tampoco olvides hacer algo de debug para ir observando lo que obtienes en tus variables, porque de otra forma ni tu ni nosotros podremos adivinar lo que sucede.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 25/02/2016, 13:22
 
Fecha de Ingreso: marzo-2014
Mensajes: 168
Antigüedad: 10 años, 1 mes
Puntos: 2
Respuesta: No puedo eliminar los archivos del directorio

Es un código bastante simple creía que lo entenderíais. El request es para comprobar si el checkbox de un formulario anterior está marcado o no. Y lo demás es bastante simple.

¿Cómo podría sacar los nombres de los archivos y seguidamente pasarles un unlink()?

Saludos y gracias.
-sergi
  #4 (permalink)  
Antiguo 25/02/2016, 13:24
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: No puedo eliminar los archivos del directorio

Claro que es bastante simple y desde luego que lo entendí a la perfección.

Lo único que te he dicho es lo siguiente:
Código PHP:
Ver original
  1. $dir = "/path/to/files";
  2. $directorio = opendir($dir);  
  3.  
  4. while ($archivo = readdir($directorio)) {  
  5.   $fullpath = "$dir/$archivo";
  6.   unlink($fullpath);
  7. }

¿O dije algo de más?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 25/02/2016, 13:28
 
Fecha de Ingreso: marzo-2014
Mensajes: 168
Antigüedad: 10 años, 1 mes
Puntos: 2
Respuesta: No puedo eliminar los archivos del directorio

¿Entonces usando este código ya podré eliminar mis archivos de la carpeta 25.02.2016?

Muchas gracias y salu2
  #6 (permalink)  
Antiguo 25/02/2016, 13:35
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: No puedo eliminar los archivos del directorio

Es sólo un ejemplo para que entiendas cómo funciona readdir(), ¿si entendiste cómo construir la ruta completa del archivo?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 25/02/2016, 13:55
 
Fecha de Ingreso: marzo-2014
Mensajes: 168
Antigüedad: 10 años, 1 mes
Puntos: 2
Respuesta: No puedo eliminar los archivos del directorio

Me dice que error al abrir, otra vez, es increíble. Creo que lo he puesto todo bien y aún así...

Código PHP:
//conficion

if (isset($_REQUEST['camara1'])) {
    
    
$dir "./home/a5612869/public_html/camara/$fecha";
$directorio opendir($dir);  
 
while (
$archivo readdir($directorio)) {  
  
$fullpath "$dir/$archivo";
  
unlink($fullpath); 

}  


}

?> 
Saludos, gracias.
-sergi
  #8 (permalink)  
Antiguo 25/02/2016, 14:02
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: No puedo eliminar los archivos del directorio

La ruta "./home" no es válida, ¿si sabes lo que significa el punto inicial?

Usar ./home implica que dicha carpeta existe en el mismo lugar donde está ejecutándose el script.

No se tu pero tengo entendido que siempre es /home y no lo que usaste, ya que la barra inicial es la raíz del sistema de archivos.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 25/02/2016, 14:10
 
Fecha de Ingreso: marzo-2014
Mensajes: 168
Antigüedad: 10 años, 1 mes
Puntos: 2
Respuesta: No puedo eliminar los archivos del directorio

¡Muchas gracias! Ahora, el código funciona bien, pero me saltan dos errores: aqui los vees

Warning: unlink(/home/a5612869/public_html/camara/25.02.2016/.) [function.unlink]: Is a directory in /home/a5612869/public_html/borrando.php on line 155

Free Web Hosting

PHP Error Message

Warning: unlink(/home/a5612869/public_html/camara/25.02.2016/..) [function.unlink]: Is a directory in /home/a5612869/public_html/borrando.php on line 155

Atentamente:
-sergi
  #10 (permalink)  
Antiguo 25/02/2016, 14:27
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: No puedo eliminar los archivos del directorio

Te sugiero leer el manual de readdir() antes de que continúes, lo digo porque readdir() devuelvo dos valores adicionales . y .. que son los que indica el error que obtienes.

Dichos valores no son útiles, simplemente necesitas omitirles con una condición if():
Código PHP:
Ver original
  1. $dir = "/path/to/files";
  2. $directorio = opendir($dir);  
  3.      
  4. while ($archivo = readdir($directorio)) {  
  5.   if ($archivo !== '.' && $archivo !== '..') {
  6.     $fullpath = "$dir/$archivo";
  7.     unlink($fullpath);
  8.   }
  9. }
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #11 (permalink)  
Antiguo 25/02/2016, 19:25
 
Fecha de Ingreso: enero-2009
Ubicación: Kandor
Mensajes: 209
Antigüedad: 15 años, 2 meses
Puntos: 11
Respuesta: No puedo eliminar los archivos del directorio

para quitar los warnings de unlink talvez funcione si le pone arroba:

@unlink($path);
  #12 (permalink)  
Antiguo 25/02/2016, 19:29
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: No puedo eliminar los archivos del directorio

Cita:
Iniciado por abrahamhs Ver Mensaje
para quitar los warnings de unlink talvez funcione si le pone arroba:

@unlink($path);
Mal consejo.

Ocultar un "warning" dista mucho de "solucionar" un problema, eso no sirve.

Lo correcto hoy y siempre es validar lógicamente lo que se programa, sólo los peores programadores ocultan sus propios errores bajo la alfombra.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #13 (permalink)  
Antiguo 26/02/2016, 04:43
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Respuesta: No puedo eliminar los archivos del directorio

Cita:
Iniciado por pateketrueke Ver Mensaje
Mal consejo.

Ocultar un "warning" dista mucho de "solucionar" un problema, eso no sirve.

Lo correcto hoy y siempre es validar lógicamente lo que se programa, sólo los peores programadores ocultan sus propios errores bajo la alfombra.
Totalmente de acuerdo, los errores, sean del nivel que sean es mejor resolverlos que esconderlos, si no, al final, siempre dan problemas.
  #14 (permalink)  
Antiguo 26/02/2016, 13:32
 
Fecha de Ingreso: marzo-2014
Mensajes: 168
Antigüedad: 10 años, 1 mes
Puntos: 2
Respuesta: No puedo eliminar los archivos del directorio

¿Entonces cómo evito este error?


PHP Error Message

Warning: opendir(home/a5612869/public_html/camara/26.02.2016) [function.opendir]: failed to open dir: No such file or directory in /home/a5612869/public_html/borrando.php on line 151

Free Web Hosting

PHP Error Message

Warning: readdir(): supplied argument is not a valid Directory resource in /home/a5612869/public_html/borrando.php on line 153

Free Web Hosting

¡Creo que está todo configurado correctamente y es increíble lo que pasa!

Atentamente,
-sergi
  #15 (permalink)  
Antiguo 26/02/2016, 13:36
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: No puedo eliminar los archivos del directorio

A ver, ya cambiaste la ruta tres veces, ¿por qué?

Cita:
¡Creo que está todo configurado correctamente y es increíble lo que pasa!
Pues no, no es increíble, tu mismo te lo estás buscando:

Cita:
home/a5612869/public_html/camara/26.02.2016
./home/a5612869/public_html/camara/26.02.2016
/home/a5612869/public_html/camara/26.02.2016
¿Ahora cual de esas rutas estás usando?

Porque la última es la correcta, una ruta absoluta.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: directorio
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 19:25.