Foros del Web » Programando para Internet » PHP »

borrar "fichero*.*" de un directorio?

Estas en el tema de borrar "fichero*.*" de un directorio? en el foro de PHP en Foros del Web. hola amigos, en un direcorio tengo: fichero1.jpg fichero1.dat fichero1.gif fichero2.txt fichero2.jpg fichero2.dat fichero2.gif fichero2.txt y quisiera borrar todos los que sean "fichero2.*". ALguno sabe como ...
  #1 (permalink)  
Antiguo 14/08/2003, 10:36
 
Fecha de Ingreso: marzo-2001
Ubicación: Gran Canaria
Mensajes: 381
Antigüedad: 16 años, 9 meses
Puntos: 2
borrar "fichero*.*" de un directorio?

hola amigos,

en un direcorio tengo:
fichero1.jpg
fichero1.dat
fichero1.gif
fichero2.txt
fichero2.jpg
fichero2.dat
fichero2.gif
fichero2.txt

y quisiera borrar todos los que sean "fichero2.*". ALguno sabe como hacerlo???

Primero intente con esto:

Código:
unlink("fichero2.*");
Y como me canto que el fichero no existia, pues intente con esto:

Código:
if (is_file("fichero2.*")) 
     unlink("fichero2.*");
pero era evidente que no funcionaria.


Alguna idea de como poder hacer un borrado masivo de archivos usando el caracter "*".


Gracias!




ToKaTa.
__________________

"Si pudieras volver.....¿.lo harias?"
  #2 (permalink)  
Antiguo 14/08/2003, 16:27
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

Si, es facil. Solo recorres todo el directorio y booras los ficheros que coincidan con el patron. Para recorrer el directorio tienes la funcion readdir() (www.php.net/readdir).

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 14/08/2003, 18:38
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 15 años, 10 meses
Puntos: 5
Código PHP:
<?php
$nombre
="fichero2"
$tudir="directorio/"

if ($handle opendir($tudir)) {
    while (
false !== ($file readdir($handle))) {
        if (
substr($file,0,(strlen($nombre) - 1)) == $nombre) {
            
unlink($tudir.$file);
        }
    }
    
closedir($handle);
}
?>
Creo que algo así debe servirte

__________________
Manoloweb
  #4 (permalink)  
Antiguo 14/08/2003, 21:22
 
Fecha de Ingreso: julio-2003
Mensajes: 165
Antigüedad: 14 años, 5 meses
Puntos: 1
Hola,

Adicionalmente al valioso consejo que han dicho nuestros amigos, te comento que otra alternativa podría ser la función glob(), que apareció en la versión 4.3.0 de PHP.

Con ella, el código podría resultar más cercano a lo que tenías en mente inicialmente:

Código:
<?php

foreach (glob ('fichero2*') as $nombre_archivo)
    unlink ($nombre_archivo);

?>
En caso de que esta función te pueda resultar útil (la principal limitación aquí es la versión de PHP que se requiere), te recomendaría que leyeras la descripción que incluye el manual de PHP, en donde adicionalmente hay varios comentarios interesantes contribuidos por los lectores del manual (puedes encontrar, por ejemplo, otra alternativa que involucra un llamado al comando del sistema `ls').

Muy seguramente, con un poco de imaginación, sea posible encontrar otras alternativas bien interesantes a la solución de tu problema... :)

Un cordial saludo
  #5 (permalink)  
Antiguo 22/08/2003, 05:17
 
Fecha de Ingreso: marzo-2001
Ubicación: Gran Canaria
Mensajes: 381
Antigüedad: 16 años, 9 meses
Puntos: 2
gracias amigos!

me salvais la vida para no volverme loco


siento responder tan tarde, pero no habia visto las respuestas hasta ahora


Gracias!
__________________

"Si pudieras volver.....¿.lo harias?"
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 11:29.