ALTE Verzeichnisse rekursiv löschen

Registrierer

Erfahrenes Mitglied
Ich möchte Verzeichnisse, die älter als X Tage alt sind rekursiv löschen (Temporäres Verzeichnis leeren).

Das löschen von Dateien hab ich so gelöst:
PHP:
$Verzeichnis = 'galerie/temp/'; 
$Dateien = scandir ($Verzeichnis); 
$Loeschzeit = time() + 86400;
foreach ($Dateien as $Datei)
{
  $Dateidatum = filemtime('galerie/temp/'.$Datei);
  if ($Datei != '.' && $Datei != '..' && !is_link ($Verzeichnis.$Datei) && is_file ($Verzeichnis.$Datei) && ($Loeschzeit < $Dateidatum)) @unlink ($Verzeichnis.$Datei); 
}

aber wie kann ich das mit ganzen Unterverzeichnissen anstellen?
 
PHP:
<?php
/**
 * Recursively delete a directory
 *
 * @param string $dir Directory name
 * @param boolean $deleteRootToo Delete specified top-level directory as well
 */
function unlinkRecursive($dir, $deleteRootToo)
{
    if(!$dh = @opendir($dir))
    {
        return;
    }
    while (false !== ($obj = readdir($dh)))
    {
        if($obj == '.' || $obj == '..')
        {
            continue;
        }

        if (!@unlink($dir . '/' . $obj))
        {
            unlinkRecursive($dir.'/'.$obj, true);
        }
    }

    closedir($dh);
   
    if ($deleteRootToo)
    {
        @rmdir($dir);
    }
   
    return;
}
?>

Quelle
Die Kommentare zu einer solchen Funktion sind meist sehr hilfreich.
 
Zurück