Ver las NORMAS de estos Foros Web ZackYFileS Chat ZackYFileS Agregar a Favoritos Contactar con Administrador
 
 

TU PUBLICIDAD AQUÍ!!
Navegación
Retroceder   Foros ZackYFileS >
OTROS TEMAS DE INTERES - INTERNET:
> ARTES GRÁFICAS - Diseño, Firmas, WEBS.
Nombre de usuario
Contraseña
Configuración de UsuarioAyuda (FAQs)Nuevos PostsBuscar


Respuesta
 
Herramientas
Antiguo 14/11/2005, 22:14   #1
calamaro2
Usuario Activo
 
Fecha de ingreso: 21/feb/2004
Mensajes: 244
calamaro2 está en el buen camino
Borrar directorios no vacios con php

Hola,

Pues eso, lo que dice el titulo. Sabeis si exite alguna funcion ya hecha que permita borrar directorios no vacios en php?. La función rmdir no vale, solo vale si están vacios. Estoy usando una recursiva hecha por mi pero si existe una ya hecha quedaría más elegante usarla en lugar de la mia.
De todas formas por si alguien tiene el mismo problema y le da pereza hacerse una, aquí queda el código de la mía:

function EliminaDir($rutaDir){
$path=$rutaDir."*";
if(glob($path)!=NULL){
$cont=0;
foreach(glob($path) as $entrada){
if (is_file($entrada)){
$fichBorrar[$cont]=$entrada;
$cont++;
}
}
for ($i=0;$i<$cont;$i++)
unlink($fichBorrar[$i]);

if (glob($path)!=NULL){
foreach (glob($path) as $entrada){
if (is_dir($entrada)){
$nuevaRuta=$entrada."/";
EliminaDir($nuevaRuta);
}
}
}
}
rmdir($rutaDir);
}

Saludos y gracias,

calamaro2.

Última edición por calamaro2; 15/11/2005 a las 00:15.
calamaro2 está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Publicidad: Conoce las ofertas de ANUNCIATE
Antiguo 16/11/2005, 01:32   #2
Coke
Invitado
 
Mensajes: n/a

que yo sepa no se puede, primero hay que borrar los archivos y despues los directorios,, como tu has hecho...la funcion que has hecho esta muy bien, yo la haria asi, modificando un poquito la tuya...te ahorras el bucle y el array y por otro lado comprueba que sea un directorio $rutaDir, para que no te de error rmdir($rutaDir); si no lo fuera o no existiera.

Código PHP:
function EliminaDir($rutaDir){
    if(!
is_dir($rutaDir)) {
        return;
    }
    else {
        
$path $_SERVER['DOCUMENT_ROOT'].''.$rutaDir."*";
    }
    if(
glob($path)!=NULL){
        foreach(
glob($path) as $entrada){
            if (
is_file($entrada)){
                
unlink($entrada);
            }
        }
        if (
glob($path)!=NULL){
            foreach (
glob($path) as $entrada){
                if (
is_dir($entrada)){
                    
$nuevaRuta=$entrada."/";
                    
EliminaDir($nuevaRuta);
                }
            }
        }
    }
    
rmdir($rutaDir);

Coke.

Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 16/11/2005, 01:47   #3
Coke
Invitado
 
Mensajes: n/a

asi tambien va bien...

Código PHP:
function EliminaDir($rutaDir){
    if(!
is_dir($rutaDir)) {
        return;
    }
    else {
        
$path $_SERVER['DOCUMENT_ROOT'].''.$rutaDir."*";
    }
    if(
glob($path)!=NULL){
        foreach(
glob($path) as $entrada){
            if (
is_file($entrada)){
                
unlink($entrada);
            }
            else {
                
$nuevaRuta $entrada."/";
                
EliminaDir($nuevaRuta);
            }
        }
    }
    
rmdir($rutaDir);

Coke.

Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 17/11/2005, 00:41   #4
calamaro2
Usuario Activo
 
Fecha de ingreso: 21/feb/2004
Mensajes: 244
calamaro2 está en el buen camino
Ok, gracias Coke,

Yo hacia el bucle con el for por "precaución". Tuve problemas al borrar nodos de un arbol DOM al hacer un foreach. No me los recorria todos si me cargaba uno dentro del foreach. Cuando borraba uno me los movia todos una posicion y en la siguiente iteración avanzaba una posición. Uséase, me cargaba un nodo y el siguiente a este que me cargaba no lo chequeaba, se lo saltaba. Por eso lo había hecho así. Pensé que en este caso me iba a hacer lo mismo.

Y no fui capaz de poner el código sangrado como has hecho tu :P

Saludos,

calamaro2.
calamaro2 está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Publicidad: Conoce las ofertas de ANUNCIATE
Respuesta


Usuarios viendo actualmente este tema: 1 (0 usuarios registrados y 1 visitantes)
 

Permisos para publicar mensajes
No puedes crear nuevos temas
No puedes responder mensajes
No puedes subir archivos adjuntos
No puedes editar tus mensajes

Los BB code están Activado
Los Emoticones están Activado
El código [IMG] está Activado
El Código HTML está Activado

Ir al foro

Temas similares
Tema Autor Foro Resp. Último mensaje
Nuevo PHP 5.1.0 RC1 Pillus ARTES GRÁFICAS - Diseño, Firmas, WEBS. 0 20/08/2005 12:15
Nuevo gusano para servidores web con PHP caminero21 SOFTWARE del PC - PROGRAMAS y S.O. 0 28/12/2004 02:39
Manual de Instalacion de PHP 5.0.2 en PWS de windows corsa ARTES GRÁFICAS - Diseño, Firmas, WEBS. 0 10/11/2004 20:02


!! ADVERTENCIAS !!: Las informaciones aquí publicadas NO CONTIENEN KEYS para la decodificación de ningún sistema: NO SON OPERATIVOS en sistemas SAT que precisen de su correspondiente suscripción.

ESTA TOTALMENTE PROHIBIDO EL USO DE ESTAS INFORMACIONES PARA LA MODIFICACIÓN O  DEFRAUDACIÓN DE SISTEMAS DE ACCESO CONDICIONAL.

ESTOS FOROS SON MODERADOS Y NO SE PERMITE LA PUBLICACIÓN DE INFORMACIONES ILEGALES POR PARTE DE LOS USUARIOS. EN CASO DE DETECTARSE ESTE TIPO DE INFORMACIONES, LOS USUARIOS SERÁN EXCLUIDOS DE ESTAS PÁGINAS.

USO DE COOKIES: Utilizamos COOKIES y de terceros para mejorar nuestros servicios y navegación por la web. Si continua navegando, consideramos que acepta su uso.  


La franja horaria es GMT +2. Ahora son las 18:53.


-------------------------------------------------------------------- --------------------------------------------------------------------

Powered por vBulletin™ Version 3.8.10
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.
Traducido por vBsoporte - vBulletin en español
Hispaservicios - J.G.C - 29112549T - Rio Cinca, 2, 30 (50180) SPAIN.
Todos los derechos reservados. Prohibida cualquier reproducion total o parcial.


Foros Patrocinados por anunciantes.