Foros del Web » Programando para Internet » PHP »

Ayuda con codigo para borrar directorio y todo su contenido

Estas en el tema de Ayuda con codigo para borrar directorio y todo su contenido en el foro de PHP en Foros del Web. Hola a todos, tengo una funcion que sirve para borrar una carpeta y su contenido, pero no funciona si hay subcarpetas, alguien me podria decir ...
  #1 (permalink)  
Antiguo 19/01/2006, 09:35
 
Fecha de Ingreso: agosto-2003
Mensajes: 57
Antigüedad: 20 años, 8 meses
Puntos: 0
Ayuda con codigo para borrar directorio y todo su contenido

Hola a todos, tengo una funcion que sirve para borrar una carpeta y su contenido, pero no funciona si hay subcarpetas, alguien me podria decir como adaptarlo para que borre absolutamente todo?? muchas gracias!!

Germán.

Código PHP:
function deleteAlbum($id){
    
$target formatoCeros($id,3);
    
$sourcedir opendir($target);
    while(
false !== ($filename readdir($sourcedir))){
      if(!
is_dir($filename))
        
unlink($target."/".$filename);
    }
    
closedir($sourcedir);
    
rmdir($target);
  } 
  #2 (permalink)  
Antiguo 19/01/2006, 09:39
Avatar de Mignola  
Fecha de Ingreso: noviembre-2002
Ubicación: Templo Shaolin
Mensajes: 167
Antigüedad: 21 años, 5 meses
Puntos: 1
Código PHP:
rmdirr("../tudirectorio",true);

function 
rmdirr($target,$verbose=false)        {
    
$exceptions=array('.','..');
    if (!
$sourcedir=@opendir($target))       {
       if (
$verbose)   echo '<strong>Couldn’t open '.$target."</strong><br />\n";
       return 
false;
    }
    while(
false!==($sibling=readdir($sourcedir)))  {
       if(!
in_array($sibling,$exceptions))           {
           
$object=str_replace('//','/',$target.'/'.$sibling);
           if(
$verbose)  echo 'Processing: <strong>'.$object."</strong><br />\n";
           if(
is_dir($object))   rmdirr($object);
           if(
is_file($object))               {
               
$result=@unlink($object);
               if (
$verbose&&$result)       echo "File has been removed<br />\n";
               if (
$verbose&&(!$result))   echo "<strong>Couldn’t remove file</strong>";
            }
        }
    }
    
closedir($sourcedir);
    if(
$result=@rmdir($target))       {
       if (
$verbose)   echo "Target directory has been removed<br />\n";
       return 
true;
       }
    if (
$verbose)   echo "<strong>Couldn’t remove target directory</strong>";
    return 
false;

  #3 (permalink)  
Antiguo 19/01/2006, 09:56
 
Fecha de Ingreso: agosto-2003
Mensajes: 57
Antigüedad: 20 años, 8 meses
Puntos: 0
Perfecto! muchisimas gracias!
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 01:44.