Foros del Web » Programando para Internet » PHP »

Eliminar archivos subcarpeta

Estas en el tema de Eliminar archivos subcarpeta en el foro de PHP en Foros del Web. buenas hace un tiempo pregunte sobre esto y llegue hasta aqui, diganme si deberia arrancar la pag? a mi no me arranca porque me tira ...
  #1 (permalink)  
Antiguo 13/09/2008, 18:41
 
Fecha de Ingreso: septiembre-2008
Mensajes: 242
Antigüedad: 15 años, 7 meses
Puntos: 3
Eliminar archivos subcarpeta

buenas hace un tiempo pregunte sobre esto y llegue hasta aqui, diganme si deberia arrancar la pag? a mi no me arranca porque me tira permison denied :S

Código PHP:
<?php
include 'fecha.php'// este me tira un valor, que esta contenida en una variable $fecha

$path="files/";

$handle opendir($path);
while(
$file readdir($handle)) {
if(
$file!= "." && $file != ".." && $file!="Thumbs.db")
{
$path2 "$path$file/";
$handle2 opendir($path2);
while(
$file2 readdir($handle2))
{
if(
$file2!= "." && $file2 != ".." && $file2!="Thumbs.db")
{
if(
fileatime($file2) >= $fecha)
{
unlink("$path2$file2");
rmdir("$path2");
}
else
{
echo 
"hola ajaajaja";
}
}
}
}


?>

Última edición por AlvaroX; 13/09/2008 a las 20:11
  #2 (permalink)  
Antiguo 14/09/2008, 16:08
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Eliminar archivos subcarpeta

Si te dice permission denied es que no tienes los permisos para borrar el archivo que quieres.

Saludos.
  #3 (permalink)  
Antiguo 14/09/2008, 19:44
 
Fecha de Ingreso: septiembre-2008
Mensajes: 242
Antigüedad: 15 años, 7 meses
Puntos: 3
Respuesta: Eliminar archivos subcarpeta

Cita:
Iniciado por GatorV Ver Mensaje
Si te dice permission denied es que no tienes los permisos para borrar el archivo que quieres.

Saludos.
Entendi que hay que cerrar el directorio para eliminar la carpeta y lo hice, ahora me sale este error eso si, que no entiendo bien:

Warning: readdir(): 3 is not a valid Directory resource in URL line 12 (no me digas que es un directorio invalido porque es valido revizalo si quieres), si se ingles lo queno entiendo son los errores ¬¬

creo que el error radica en que que la funcion closedir me detiene el bucle while, ya que no hay un directorio abierto, pero si no cierro el directorio no me elimina el archivo con su directorio, que trajedia no :(, es ese el error o digname cual seria el error plx ya la cosa es que el script lo tengo asi:

Código PHP:
<?php

include 'fecha.php'//valor en variable $fecha

$path="files";

$handle opendir($path);
while(
$file readdir($handle))
{
if(
$file != "." && $file != ".." && $file != "Thumbs.db")
{
$path2 "$path/$file";
$handle2 opendir($path2);
while(
$file2 readdir($handle2))
{
if(
$file2 != "." && $file2 != ".." && $file2 !="Thumbs.db")
{
if(
fileatime("$path2/$file2") >= $fecha)
{
if(
unlink("$path2/$file2"))
{
closedir($handle2);
rmdir("$path2");
}
}
}
}
}
}

//xD 6 llaves de cierre ahahaha que harto para tan poco :P!
?>

Última edición por AlvaroX; 14/09/2008 a las 19:51
  #4 (permalink)  
Antiguo 14/09/2008, 20:28
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Eliminar archivos subcarpeta

Lo que tienes que hacer, es una función recursiva y limpiar más tu algoritmo, primero borras los archivos y luego los directorios.

Saludos.
  #5 (permalink)  
Antiguo 14/09/2008, 20:47
 
Fecha de Ingreso: septiembre-2008
Mensajes: 242
Antigüedad: 15 años, 7 meses
Puntos: 3
Respuesta: Eliminar archivos subcarpeta

Cita:
Iniciado por GatorV Ver Mensaje
Lo que tienes que hacer, es una función recursiva y limpiar más tu algoritmo, primero borras los archivos y luego los directorios.

Saludos.
mi script hace eso... pues que es una funcion recursiva :P! xD
  #6 (permalink)  
Antiguo 14/09/2008, 20:56
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Eliminar archivos subcarpeta

Cita:
Iniciado por AlvaroX Ver Mensaje
mi script hace eso... pues que es una funcion recursiva :P! xD
Claramente tu script no es una función recursiva, pues nisiquiera es una función

Una función recursiva es aquella que, mientras se cumplan ciertas condiciones durante su ejecución, se llama a sí misma. Es arma de doble filo, pues si no la programas bien puede generar un ciclo infinito que impedirá el correcto funcionamiento de tu script.

Y dado que sabes inglés, no tendrás problema en leer los comentarios publicados en http://www.php.net/rmdir. Allí publican varios métodos para borrar directorios y subdirectorios, así como los archivos incluídos en éstos.

Saludos,
  #7 (permalink)  
Antiguo 14/09/2008, 21:04
 
Fecha de Ingreso: septiembre-2008
Mensajes: 242
Antigüedad: 15 años, 7 meses
Puntos: 3
Respuesta: Eliminar archivos subcarpeta

Cita:
Iniciado por okram Ver Mensaje
Claramente tu script no es una función recursiva, pues nisiquiera es una función

Una función recursiva es aquella que, mientras se cumplan ciertas condiciones durante su ejecución, se llama a sí misma. Es arma de doble filo, pues si no la programas bien puede generar un ciclo infinito que impedirá el correcto funcionamiento de tu script.

Y dado que sabes inglés, no tendrás problema en leer los comentarios publicados en http://www.php.net/rmdir. Allí publican varios métodos para borrar directorios y subdirectorios, así como los archivos incluídos en éstos.

Saludos,
no me da la cabeza pa hacerlo, bueno voy a tener que dejar mi proyecto hasta aqui :S

Última edición por AlvaroX; 14/09/2008 a las 21:31
  #8 (permalink)  
Antiguo 14/09/2008, 22:37
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Eliminar archivos subcarpeta

Como te dijo Okram. En los comentarios publicados hay varios metodos para borrar directorios y subdirectorios.

Código PHP:
<?php
function rm_recursive($filepath)
{
    if (
is_dir($filepath) && !is_link($filepath))
    {
        if (
$dh opendir($filepath))
        {
            while ((
$sf readdir($dh)) !== false)
            {
                if (
$sf == '.' || $sf == '..')
                {
                    continue;
                }
                if (!
rm_recursive($filepath.'/'.$sf))
                {
                    throw new 
Exception($filepath.'/'.$sf.' could not be deleted.');
                }
            }
            
closedir($dh);
        }
        return 
rmdir($filepath);
    }
    return 
unlink($filepath);
}
?>
  #9 (permalink)  
Antiguo 14/09/2008, 23:08
 
Fecha de Ingreso: septiembre-2008
Mensajes: 242
Antigüedad: 15 años, 7 meses
Puntos: 3
Respuesta: Eliminar archivos subcarpeta

Cita:
Iniciado por Ronruby Ver Mensaje
Como te dijo Okram. En los comentarios publicados hay varios metodos para borrar directorios y subdirectorios.

Código PHP:
<?php
function rm_recursive($filepath)
{
    if (
is_dir($filepath) && !is_link($filepath))
    {
        if (
$dh opendir($filepath))
        {
            while ((
$sf readdir($dh)) !== false)
            {
                if (
$sf == '.' || $sf == '..')
                {
                    continue;
                }
                if (!
rm_recursive($filepath.'/'.$sf))
                {
                    throw new 
Exception($filepath.'/'.$sf.' could not be deleted.');
                }
            }
            
closedir($dh);
        }
        return 
rmdir($filepath);
    }
    return 
unlink($filepath);
}
?>
vale y ahora como le hago para eliminar la carpeta y archivo si solo cumplen que su fileatime() sea mayor a una fecha dada por un include?
  #10 (permalink)  
Antiguo 15/09/2008, 17:31
 
Fecha de Ingreso: septiembre-2008
Mensajes: 242
Antigüedad: 15 años, 7 meses
Puntos: 3
Respuesta: Eliminar archivos subcarpeta

que hago entoces?
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:07.