Foros del Web » Programando para Internet » PHP »

borrar todos los archivos de un directorio

Estas en el tema de borrar todos los archivos de un directorio en el foro de PHP en Foros del Web. -------------------------------------------------------------------------------- Hola gente, necesito saber cuál es la instrucción en PHP para borrar todos los archivos que haya en un directorio del servidor. He probado ...
  #1 (permalink)  
Antiguo 17/10/2007, 02:45
 
Fecha de Ingreso: diciembre-2003
Mensajes: 474
Antigüedad: 20 años, 4 meses
Puntos: 5
borrar todos los archivos de un directorio

--------------------------------------------------------------------------------
Hola gente, necesito saber cuál es la instrucción en PHP para borrar todos los archivos que haya en un directorio del servidor. He probado con ftp_delete()
y con unlink() pero me borran el que yo le indique y necesito que borre todos los que haya.

Gracias.
  #2 (permalink)  
Antiguo 17/10/2007, 03:12
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 20 años, 1 mes
Puntos: 62
Re: borrar todos los archivos de un directorio

creo que con este link lo soluciones, por favot postea la solucion ;)

http://www.programacionweb.net/artic...iculo/?num=134
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan
  #3 (permalink)  
Antiguo 17/10/2007, 05:42
GPS
 
Fecha de Ingreso: diciembre-2003
Ubicación: Montevideo, Uruguay
Mensajes: 110
Antigüedad: 20 años, 4 meses
Puntos: 0
Re: borrar todos los archivos de un directorio

Acá te dejo dos funciones que sirven exactamente para eso
Saludos!

Código PHP:
<?php
function rmdirtree($dirname) {
   if (
is_dir($dirname)) {    //Operate on dirs only
       
$result=array();
       if (
substr($dirname,-1)!='/') {$dirname.='/';}    //Append slash if necessary
       
$handle opendir($dirname);
       while (
false !== ($file readdir($handle))) {
           if (
$file!='.' && $file!= '..') {    //Ignore . and ..
               
$path $dirname.$file;
               if (
is_dir($path)) {    //Recurse if subdir, Delete if file
                   
$result=array_merge($result,rmdirtree($path));
               }else{
                   
unlink($path);
                   
$result[].=$path;
               }
           }
       }
       
closedir($handle);
       
rmdir($dirname);    //Remove dir
       
$result[].=$dirname;
       return 
$result;    //Return array of deleted items
   
}else{
       return 
false;    //Return false if attempting to operate on a file
   
}
}  
?>
Código PHP:
<?php

/**
 * Removes the directory and all its contents.
 *
 * @param string the directory name to remove
 * @param boolean whether to just empty the given directory, without deleting the given directory.
 * @return boolean True/False whether the directory was deleted.
 */
function deleteDirectory($dirname,$only_empty=false) {
   if (!
is_dir($dirname))
       return 
false;
   
$dscan = array(realpath($dirname));
   
$darr = array();
   while (!empty(
$dscan)) {
       
$dcur array_pop($dscan);
       
$darr[] = $dcur;
       if (
$d=opendir($dcur)) {
           while (
$f=readdir($d)) {
               if (
$f=='.' || $f=='..')
                   continue;
               
$f=$dcur.'/'.$f;
               if (
is_dir($f))
                   
$dscan[] = $f;
               else
                   
unlink($f);
           }
           
closedir($d);
       }
   }
   
$i_until = ($only_empty)? 0;
   for (
$i=count($darr)-1$i>=$i_until$i--) {
       echo 
"\nDeleting '".$darr[$i]."' ... ";
       if (
rmdir($darr[$i]))
           echo 
"ok";
       else
           echo 
"FAIL";
   }
   return ((
$only_empty)? (count(scandir)<=2) : (!is_dir($dirname)));
}

?>
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 (incluyéndote)




La zona horaria es GMT -6. Ahora son las 10:27.