Foros del Web » Programando para Internet » PHP »

APORTE: Eliminar carpeta recursivamente

Estas en el tema de APORTE: Eliminar carpeta recursivamente en el foro de PHP en Foros del Web. Señores, Ayer me vi en la necesidad de hacer una rutina que pudiera eliminar todo lo que existe en una carpeta junto con la carpeta, ...
  #1 (permalink)  
Antiguo 30/12/2011, 11:55
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Información APORTE: Eliminar carpeta recursivamente

Señores,

Ayer me vi en la necesidad de hacer una rutina que pudiera eliminar todo lo que existe en una carpeta junto con la carpeta, dado que se crea para generar un archivo rar en el sistema y al momento de generar el rar, la carpeta ya no me sirve.

Descripcion
Funcion que elimina el contenido completo de una carpeta incluyendo la misma.

**OJO** Las acciones de eliminar se encuentran comentadas para que puedan testear y no eliminar algo importante

Código PHP:
Ver original
  1. function rrmdir($dir){
  2.         echo 'Abriendo directorio '.$dir.'<br>';
  3.         if(is_dir($dir)){
  4.             $archivos = scandir($dir);
  5.             $numA = count($archivos);
  6.             for($x=0;$x<$numA;$x++){
  7.                 if($archivos[$x] != '.' && $archivos[$x] != '..'){
  8.                     $file = explode('.',$archivos[$x]);
  9.                     $numC = count($file);
  10.                     if(isset($file[$numC-1])){ // Si quisieran eliminar solo una extension agregan la extension && $file[$numC-1] == 'jpg'
  11.                         echo 'Eliminando archivo'.$dir."/".$archivos[$x].'<br>';
  12.                         //unlink($dir."/".$archivos[$x]);
  13.                     }elseif(is_dir($dir."/".$archivos[$x])){
  14.                         //Determinar si tiene archivos la carpeta
  15.                         $archivos2 = scandir($dir."/".$archivos[$x]);
  16.                         $numB = count($archivos2);
  17.                         if($numB > 2){
  18.                             //Si lo usan en una clase esta es la linea
  19.                             //$this->rrmdir($dir."/".$archivos[$x]);
  20.                             //Si lo usan como funcion usen esta otra linea
  21.                             //rrmdir($dir."/".$archivos[$x]);
  22.                         }else{
  23.                             echo 'Eliminando directorio '.$dir.'<br>';
  24.                             //rmdir($dir."/".$archivos[$x]);
  25.                         }
  26.                     }
  27.                 }
  28.             }
  29.             echo 'Eliminando directorio '.$dir.'<br>';
  30.             //rmdir($dir);
  31.         }
  32.     }

Forma de uso
Código PHP:
Ver original
  1. rrmdir('carpeta');
  2. //o
  3. rrmdir('carpeta/carpeta');
  4. //siempre pensando que en el mismo nivel de la carpeta se encuentra este archivo

Saludos!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!

Última edición por Marvin; 09/01/2013 a las 13:55 Razón: Solo permitia eliminar imagenes, ahora deberia servir para todo tipo de archivos.

Etiquetas: aportes, carpetas
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 16:36.