lunes, 15 de septiembre de 2014

Eliminar un directorio completo con PHP

Con esta función recursiva lo que vamos a hacer es eliminar un directorio completo, borrando los ficheros y subdirectorios que pueda contener. El código fuente sería el siguiente:
function deleteDirectory($dir){
    $result = false;
    if ($handle = opendir("$dir")){
        $result = true;
        while ((($file=readdir($handle))!==false) && ($result)){
            if ($file!='.' && $file!='..'){
                if (is_dir("$dir/$file")){
                    $result = deleteDirectory("$dir/$file");
                } else {
                    $result = unlink("$dir/$file");
                }
            }
        }
        closedir($handle);
        if ($result){
            $result = rmdir($dir);
        }
    }
    return $result;
}

4 comentarios:

  1. Respuestas
    1. Hola, ¿cuál es el error que te da? Esta función la uso en varias aplicaciones web y funciona correctamente. Es posible que tengas un problema de permisos.

      Eliminar
  2. Hola. Si me ha funcionado solo tuve que modificar la linea 10 para que en lugar de $fich sea $file en
    $result = unlink("$dir/$fich")

    ResponderEliminar