Eliminar un directorio y sus archivos con PHP

 In Scripts Web, Tutoriales

En este artículo vamos a ver como borrar el contenido de un directorio (archivos y carpetas) con una función recursiva que primero elimina los archivos y finalmente el directorio padre de estos archivos.

El script recorre todo el contenido de forma recursiva como si se tratara de recorrer un árbol accediendo a sus hojas para acabar eliminando la raiz.

Vamos a declarar la siguiente función:

function deleteDirectory($dir) {
    if(!$dh = @opendir($dir)) return;
    while (false !== ($current = readdir($dh))) {
        if($current != '.' && $current != '..') {
            echo 'Se ha borrado el archivo '.$dir.'/'.$current.'
';
            if (!@unlink($dir.'/'.$current))
                deleteDirectory($dir.'/'.$current);
        }       
    }
    closedir($dh);
    echo 'Se ha borrado el directorio '.$dir.'
';
    @rmdir($dir);
}

La función recibe como único parámetro el directorio a eliminar. Recursivamente se accede a los archivos para eliminarlos y seguidamente eliminar el directorio padre de estos archivos eliminados hasta llegar a la raiz que no es más que el directorio facilitado como parámetro.

A esta función la podemos llamar tal como siguie:

deleteDirectory('data');

En este caso, eliminaríamos todo el contenido de la carpeta “data” y su contenido.

Recent Posts

Leave a Comment

Contactar

Si tiene alguna pregunta, envíenos un correo electrónico y nos pondremos en contacto con usted muy pronto.

Not readable? Change text. captcha txt
0