Foros del Web » Programando para Internet » PHP »

No me borra un directorio

Estas en el tema de No me borra un directorio en el foro de PHP en Foros del Web. Hola amigos. Quiero borrar un directorio y no lo logro. Como sé que hay que borrar primero su contenido, este es el script que tengo, ...
  #1 (permalink)  
Antiguo 11/08/2005, 04:48
 
Fecha de Ingreso: septiembre-2003
Mensajes: 337
Antigüedad: 20 años, 7 meses
Puntos: 4
No me borra un directorio

Hola amigos. Quiero borrar un directorio y no lo logro. Como sé que hay que borrar primero su contenido, este es el script que tengo, a ver si alguien descubre algún error... (El directorio que quiero borrar es un subdirectorio del directorio "imagenes")
Código PHP:
//el directorio que quiero borrar se corresponde con el nombre que llega de un formulario
$r=$_POST['ref'];
  
$directorio="../dir1/dir2/imagenes/";
  
$directorio.=$r;

$f opendir($directorio);
while(
$fichero=readdir($f)) {
if ((
$fichero!=".") && ($fichero!="..")) unlink($fichero);
}
closedir($directorio);
rmdir($directorio); 
Ah, otra duda: ¿Está bien lo de poner ../dir1/dir2/imagenes, o debo poner c:/appserv/www/dir1/dir2/imagenes?
Muchas gracias
  #2 (permalink)  
Antiguo 11/08/2005, 05:50
Avatar de Bytevamp  
Fecha de Ingreso: junio-2005
Ubicación: /var/www/
Mensajes: 789
Antigüedad: 18 años, 10 meses
Puntos: 7
Cita:
Iniciado por kabe_jrr
Hola amigos. Quiero borrar un directorio y no lo logro. Como sé que hay que borrar primero su contenido, este es el script que tengo, a ver si alguien descubre algún error... (El directorio que quiero borrar es un subdirectorio del directorio "imagenes")
Código PHP:
//el directorio que quiero borrar se corresponde con el nombre que llega de un formulario
$r=$_POST['ref'];
  
$directorio="../dir1/dir2/imagenes/";
  
$directorio.=$r;

$f opendir($directorio);
while(
$fichero=readdir($f)) {
if ((
$fichero!=".") && ($fichero!="..")) unlink($fichero);
}
closedir($directorio);
rmdir($directorio); 
Ah, otra duda: ¿Está bien lo de poner ../dir1/dir2/imagenes, o debo poner c:/appserv/www/dir1/dir2/imagenes?
Muchas gracias
Solo una pregunta ¿en que directorio tienes el archivo este, a lo mejor el error esta ahi, segun tu script el archivo esta en un subdirectorio de "c:/appserv/www/", es decir en un directorio al mismo nivel que dir1/, si esto es correcto , estoy como tu, no encuentro el error .

Saludos .
  #3 (permalink)  
Antiguo 11/08/2005, 07:02
 
Fecha de Ingreso: septiembre-2003
Mensajes: 337
Antigüedad: 20 años, 7 meses
Puntos: 4
Qué va, el archivo lo tengo en un subdirectorio del directorio "imagenes", el cual esta en esta ruta: ../dir1/dir2/imagenes/directorio_que_quiero_borrar
(como dije también antes, tengo la duda añadida de si esa ruta es la misma que c:/appserv/www/dir1/dir2/imagenes/directorio_que_quiero_borrar).
Entonces, ¿tengo mal indicada la ruta?
  #4 (permalink)  
Antiguo 11/08/2005, 07:22
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
Yo no veo errores en el codigo, y el hecho que uses rutas relativas no es un impedimento para borrar un archivo. Sería mejor que indicaras el error que te arroja, asi es mas facil ayudarte, sino hay error, entonces trata de ver si no tienes desactivado el reporte de errores.
  #5 (permalink)  
Antiguo 11/08/2005, 10:04
Avatar de Bytevamp  
Fecha de Ingreso: junio-2005
Ubicación: /var/www/
Mensajes: 789
Antigüedad: 18 años, 10 meses
Puntos: 7
Cita:
Iniciado por kabe_jrr
Qué va, el archivo lo tengo en un subdirectorio del directorio "imagenes", el cual esta en esta ruta: ../dir1/dir2/imagenes/directorio_que_quiero_borrar
(como dije también antes, tengo la duda añadida de si esa ruta es la misma que c:/appserv/www/dir1/dir2/imagenes/directorio_que_quiero_borrar).
Entonces, ¿tengo mal indicada la ruta?
entonces prueba con
Código PHP:
$directorio="../"
con esto te posicionas en el directorio imagenes con
Código PHP:
$directorio="../dir1/dir2/imagenes/"
lo que haces es:
1º bajas al directorio anterior(como dices que estas en un subdirectorio de imagenes bajas hasta el directorio imagenes)
2º te colocas en c:/appserv/www/dir1/dir2/imagenes/dir1/dir2/imagenes
si este no existe-->ERROR
Creo, por lo que dices, que el error esta ahi, no encuentro otra respuesta pues el script parece estar bien.

Nota: con ../ bajas al directorio anterior al que esta el script
con ../../ bajas dos directorios.
  #6 (permalink)  
Antiguo 12/08/2005, 03:17
 
Fecha de Ingreso: septiembre-2003
Mensajes: 337
Antigüedad: 20 años, 7 meses
Puntos: 4
OK, los errores que me salen son estos:

1) Si pongo ../dir1/dir2/imagenes------> me dice que "failed to open dir: Invalid argument ..." respecto a opendir (entre otros errores, pero que son consecuencia ya del del opendir)

2) Si pongo la ruta absoluta (con el directorio que quiero borrar vacío)-----> me dice que "closedir(): supplied argument is not a valid Directory resource" y luego el error consecuente de que no puede hacer rmdir por "permission denied". Esto no lo entiendo, ya que parece que closedir no coge bien el $directorio, ya que está como closedir($directorio)

3) Si pongo la ruta absoluta (con el directorio que quiero borrar con imágenes, y el archivo "Thumbs.db" dentro, es decir, con el directorio a borrar NO VACIO)-----> me indica un error por cada archivo que está dentro del directorio, respecto a unlink, es decir, por cada archivo, me pone esto:

Warning: unlink(archivo): No such file or directory ...

Y después de esos errores de unlink, el mismo del closedir y rmdir ya comentados antes.
Aquí no lo entiendo, ya que el directorio sí que tiene archivos dentro... de hecho los lee ya que por cada error de unlink indica bien el nombre de cada archivo...
El directorio fue creado con permisos 777.
  #7 (permalink)  
Antiguo 30/11/2007, 13:04
 
Fecha de Ingreso: enero-2006
Ubicación: Valencia
Mensajes: 96
Antigüedad: 18 años, 3 meses
Puntos: 1
Re: No me borra un directorio

pues a mi me borra los archivos del directorio pero no el directorio,
el tema es que si pongo
rmdir($directorio); con variable no me lo borra
pero si lo escribo directamente
rmdir(prueba); entonces si que lo borra

asi que no se donde puede estar la pega del tema

en fin, lo que mas me preocupara era borrar los archivos del directorio, pero si pudiera borrar el directorio completo mejor que mejor
  #8 (permalink)  
Antiguo 30/11/2007, 13:14
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: No me borra un directorio

Te haz cerciorado que la variable $directorio tenga el valor correcto? (nombre del directorio).

Saludos.
  #9 (permalink)  
Antiguo 30/11/2007, 16:58
 
Fecha de Ingreso: enero-2006
Ubicación: Valencia
Mensajes: 96
Antigüedad: 18 años, 3 meses
Puntos: 1
Re: No me borra un directorio

claro que la variable tiene el valor correcto, ademas lo imprimo por pantalla para asegurarme del valor, y como ya te digo es curioso como si el valor viene de una variable no borra el directorio pero si lo escribo yo directamente si que lo hace,...
ummmm

cosas raras del php

tema de permisos de directorio están bien y el directorio se puede borrar, pero de este metodo dice php que no tiene permisos para borrar ese directorio, no se.
seguiré investigando.

taluec
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:18.