Foros del Web » Programando para Internet » PHP »

como eliminar todos los archivos de una carpeta, unlink("uploads/tmp/.*") ??

Estas en el tema de como eliminar todos los archivos de una carpeta, unlink("uploads/tmp/.*") ?? en el foro de PHP en Foros del Web. Como hacer el .* en php ?? Saludos :)...
  #1 (permalink)  
Antiguo 28/02/2011, 15:39
 
Fecha de Ingreso: septiembre-2010
Mensajes: 147
Antigüedad: 13 años, 6 meses
Puntos: 3
como eliminar todos los archivos de una carpeta, unlink("uploads/tmp/.*") ??

Como hacer el .* en php ??

Saludos :)
  #2 (permalink)  
Antiguo 28/02/2011, 15:44
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: como eliminar todos los archivos de una carpeta, unlink("uploads/tmp/.*")

Tienes que recorrerla en forma recursiva, algo así
Código PHP:
Ver original
  1. <?php
  2. function deleteFile($path){
  3.     return is_file($path)
  4.         ? unlink($path)
  5.         : array_map('deleteFile', glob($path.'/*')) == deleteFile($path);
  6. }
  7. deleteFile('directorio');
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 28/02/2011, 16:02
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 9 meses
Puntos: 641
Respuesta: como eliminar todos los archivos de una carpeta, unlink("uploads/tmp/.*")

ese código es peligroso, cuidado al usarlo alguna vez borro toda mi carpeta de archivos, jaja que feos reuerdos ¬¬
  #4 (permalink)  
Antiguo 28/02/2011, 16:51
 
Fecha de Ingreso: septiembre-2010
Mensajes: 147
Antigüedad: 13 años, 6 meses
Puntos: 3
Respuesta: como eliminar todos los archivos de una carpeta, unlink("uploads/tmp/.*")

Muchas Gracias :D!! El código funciona, pero se demora mucho :S y al final cuando termina aparece esto:

Warning: array_map() [function.array-map]: Argument #2 should be an array in


Código PHP:
Ver original
  1. function deleteFile($path){
  2.     return is_file($path)
  3.     ? unlink($path)
  4.     : array_map('deleteFile', glob($path.'/*')) == deleteFile($path);
  5. }
  6.        
  7. deleteFile('uploads/tmp/');


Gracias :)
  #5 (permalink)  
Antiguo 28/02/2011, 16:54
 
Fecha de Ingreso: septiembre-2010
Mensajes: 147
Antigüedad: 13 años, 6 meses
Puntos: 3
Respuesta: como eliminar todos los archivos de una carpeta, unlink("uploads/tmp/.*")

Mejor coloco todo mi código:
Código PHP:
Ver original
  1. if(isset($_SESSION['Random']) != ''){
  2.  
  3.         function redimensionar_jpeg($img_original, $img_nueva, $img_nueva_anchura, $img_nueva_altura, $img_nueva_calidad)
  4.         {
  5.             // crear una imagen desde el original
  6.             $img = ImageCreateFromJPEG($img_original);
  7.             // crear una imagen nueva
  8.             $thumb = imagecreatetruecolor($img_nueva_anchura,$img_nueva_altura);
  9.             // redimensiona la imagen original copiandola en la imagen
  10.             ImageCopyResized($thumb,$img,0,0,0,0,$img_nueva_anchura,$img_nueva_altura,ImageSX($img),ImageSY($img));
  11.             // guardar la nueva imagen redimensionada donde indicia $img_nueva
  12.             ImageJPEG($thumb,$img_nueva,$img_nueva_calidad);
  13.             ImageDestroy($img);
  14.         }
  15.  
  16.        
  17.         $origen="uploads/tmp/".$_SESSION['Imagen']."";
  18.         $destino="uploads/".$_SESSION['Imagen']."";
  19.         $destino_temporal=tempnam("uploads/tmp/","tmp");
  20.  
  21.         redimensionar_jpeg($origen, $destino_temporal, 150, 150, 200);
  22.  
  23.         // guardamos la imagen
  24.         $fp=fopen($destino,"w");
  25.         fputs($fp,fread(fopen($destino_temporal,"r"),filesize($destino_temporal)));
  26.         fclose($fp);
  27.        
  28.        
  29.        
  30.         $origen = 'uploads/tmp/';
  31.        
  32.         function deleteFile($path){
  33.             return is_file($path)
  34.             ? unlink($path)
  35.             : array_map('deleteFile', glob($path.'/*')) == deleteFile($path);
  36.         }
  37.            
  38.         deleteFile($origen);
  39. }
  #6 (permalink)  
Antiguo 28/02/2011, 17:10
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: como eliminar todos los archivos de una carpeta, unlink("uploads/tmp/.*")

Si ves la función, podrás ver que no requiere del último slash /.

Saludos.
  #7 (permalink)  
Antiguo 28/02/2011, 17:20
 
Fecha de Ingreso: septiembre-2010
Mensajes: 147
Antigüedad: 13 años, 6 meses
Puntos: 3
Respuesta: como eliminar todos los archivos de una carpeta, unlink("uploads/tmp/.*")

Muchas gracias por las respuestas amigos!

GatorV si, de verás!!! Gracias :D
Bueno al final me he dado cuenta que no es necesario hacer un eliminar masivo con .*

Simplemente tengo que eliminar estos dos

Código PHP:
Ver original
  1. if($destino_temporal){
  2.     unlink($origen);
  3.     unlink($destino_temporal);
  4. }

Etiquetas: eliminar, 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




La zona horaria es GMT -6. Ahora son las 15:57.