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