Hola a todos,el problema que tengo es que tengo una carpeta creada en el servidor con permisos 077,y al intentar borrarla con "rmdir" no me la borra.Dentro de la carpeta tengo otra carpeta y ficheros.
Como puedo hacer??
| |||
borrado de directorios Hola a todos,el problema que tengo es que tengo una carpeta creada en el servidor con permisos 077,y al intentar borrarla con "rmdir" no me la borra.Dentro de la carpeta tengo otra carpeta y ficheros. Como puedo hacer?? |
| ||||
rmdir() no puede borrar directorios con contenido. Primero necesitas vaciarlo; abrirlo, recorrerlo, borrar archivos, hacer lo mismo con subdirectorios... Ve en la documentación oficial, seguramente ya habrán comentado alguna función que haga eso (ve los comentarios de los usuarios): www.php.net/rmdir Si quieres hacer tu función consulta las funciones opendir(), is_dir(), unlink() y rmdir()... para empezar... Suerte! ![]()
__________________ ٩(͡๏̯͡๏)۶ "100 años después, la revolución no es con armas, es intelectual y digital" |
| |||
Creo recordar que esta función la encontré en unos de los comentarios de www.php.net. Lo que hace es recorrer todo el directorio y va eliminando todos los directorios y subdirectorios que encuentra hasta que se elimina absolutamente todo. Código PHP: Saludos,
__________________ sergiold |
| |||
![]() El problema que tengo es que este codigo no me elimina el directorio del servidor y no se por que.Primero bnorro los ficheros del directorio padre,luego los del hijo y luego borro la carpeta hijo y la padre. Cual es el fallo???? El esquema de carpetas que tengo es el siguiente: CARPETA (PADRE) | | ficheros.xxx CARPETA (HIJO) | | ficheros.xxx $ruta1 es la ruta de la carpeta padre. $ruta2 es la ruta de la carpeta hijo. Código PHP: |
| |||
He probado a hacerlo con el codigo que me enviaste sergiold Código PHP: |
| |||
Con esto borras cualquier cosa. Un saludo. Código PHP: |
| |||
![]() esta es la funcion a utilizar: function deldir($dir){ $current_dir = opendir($dir); while($entryname = readdir($current_dir)){ if(is_dir("$dir/$entryname") and ($entryname != "." and $entryname!="..")){ chmod("${dir}/${entryname}" , 0777 ); deldir("${dir}/${entryname}"); }elseif($entryname != "." and $entryname!=".."){ chmod("${dir}/${entryname}" , 0777 ); unlink("${dir}/${entryname}"); } } closedir($current_dir); rmdir(${dir}); } asegurate de cuando llames la funcion, pongas correctamente la ruta del directorio, por ejemplo si la pagina que contiene el script esta en la carpeta raiz, y el directorio a borrar se llama fotos y esta dentro de la carpeta imagenes deberas poner asi: deldir("imagenes/fotos"); estoy seguro que con esto lo solucionas, adiocelli.
__________________ _ __|_|__ º(-_-)º |
| |||
Cita: Muchas gracias el escrip que me enviaste funciona a las mil maravillas.
Iniciado por Shockly Con esto borras cualquier cosa. Un saludo. Código PHP: Gracias. |
| |||
![]() Esto es un escandalo!!!!!! La funcion que me envio "Shockly" me funciona si la estructura de carpetas la creo yo a pelo,en windows,sin embargo si intento borrar una estructura de carpetas creada desde PHP,únicamente me elimina los ficheros u no me elimina las carpetas. Cual es el error??? |
| |||
Y cómo estás creando las carpetas? El código que te he pasado lo utilizo para eliminar sistemas de directorios y subdirectorios, y con archivos en todo ellos y todo esto creado desde PHP y no me da ningún problema. Saludos,
__________________ sergiold |
| |||
![]() Las carpetas y los ficheros que hay en ellas las creo mediante un script php. Yo creo que el problema puede ser que un cliente web no tenga permisos de borrado de directorios por eso solo me elimina los ficheros. Sabes donde se configuran los permisos en el Apache para poder borrar carpetas??? |
| |||
Cita: Pues no sé cual será el error en tu caso, pero precisamente esa función es la que yo uso para eliminar carpetas y su contenido de carpetas/files creados por otros scripts PHP -con permisos "exóticos"- e imposibles de borrar desde FTP.
Iniciado por bananas Esto es un escandalo!!!!!! La funcion que me envio "Shockly" me funciona si la estructura de carpetas la creo yo a pelo,en windows,sin embargo si intento borrar una estructura de carpetas creada desde PHP,únicamente me elimina los ficheros u no me elimina las carpetas. Cual es el error??? Un saludo. |