Foros del Web » Programando para Internet » PHP »

Borrar directorio con php

Estas en el tema de Borrar directorio con php en el foro de PHP en Foros del Web. Este tema lo abrí para compartir una función para borrar directorios aunque estos tengan archivos o directorios en su interior. Ojalá les sirva de ayuda. ...
  #1 (permalink)  
Antiguo 04/08/2010, 21:21
 
Fecha de Ingreso: enero-2008
Mensajes: 68
Antigüedad: 16 años, 3 meses
Puntos: 1
Borrar directorio con php

Este tema lo abrí para compartir una función para borrar directorios aunque estos tengan archivos o directorios en su interior.

Ojalá les sirva de ayuda.

Código PHP:
<?php

if(!isset($__REMDIR)){
    class 
NoOpenException extends Exception {}
    class 
NoDeleteException extends Exception {}
    class 
NoDirectoryException extends Exception {}
    class 
UnlinkException extends Exception {}
    
    function 
borrar_directorio($dir){
        if(!
is_dir($dir))
            throw new 
NoDirectoryException("$dir::No es un directorio");
        
        if(!(
$open opendir($dir)))
            throw new 
NoOpenException("$dir::No se puede abrir");
        
        while(
$file readdir($open)){
            if(
$file == "." || $file == "..")
                continue;
            if(
is_dir("$dir/$file"))
                
borrar_directorio("$dir/$file");
            else
                if(!
unlink("$dir/$file"))
                    throw new 
UnlinkException("$dir/$file::No se pudo borrar el archivo");
        }
        
closedir($open);
        
        if(!
rmdir($dir))
            throw new 
NoDeleteException("$dir::No ha podido ser borrado");
    }

    
$__REMDIR true;
}

?>
Si este código lo guardan como "borrar_directorio.php", para utilizarla deben sólo deben poner esto

Código PHP:
<?
include "borrar_directorio.php";
try{
 
borrar_directorio("nombre_del_directorio");
}catch(
Exception $e){
    die(
"<h2>".$e->getMessage()."</h2>");
}
?>

Etiquetas: borrar, completo, 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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 22:31.