Hi Vinzenz,
könntest Du vielleicht nochmal einen Blick darauf werfen?
Nicht, dass irgendwo ein Fehler drinne ist und ich mir versehentlich Dateien lösche.
Grüße, Kk
(Hoffentlich klappt die Formatierung)
function dir_rekursiv($verzeichnis)
{
$handle = opendir($verzeichnis);
while ($datei = readdir($handle))
{
if ($datei != "." && $datei != ".." && $datei != "backup")
{
if (is_dir($verzeichnis.$datei)) // Wenn Verzeichniseintrag ein Verzeichnis ist
{
// Erneuter Funktionsaufruf, um das aktuelle Verzeichnis auszulesen
dir_rekursiv($verzeichnis.$datei.'/');
}
else
{
$teile = explode(".", $datei);
$datei_ohne_endung=$teile[0];
$endung=$teile[1];
$laenge = strlen($datei_ohne_endung)-1; // string-laenge bestimmen, und
// 1 abziehen, weil bei 0 angefangen
// wird zu zaehlen..
if (($endung != "gif") && (is_numeric($datei_ohne_endung[$laenge])))
{
$datei_ohne_endung = preg_replace("/\d*$/", "", $datei_ohne_endung);
$backupliste = glob("./backup/$datei_ohne_endung*.$endung");
natsort ($backupliste);
$hoechste_dateinummer = array_pop($backupliste);
$teile_hoechste_dateinummer = explode(".", $hoechste_dateinummer);
$datei_ohne_endung_hoechste_dateinummer=$teile_hoechste_dateinummer[1];
preg_match("/\d*$/", $datei_ohne_endung_hoechste_dateinummer, $treffer);
//echo("$datei_ohne_endung_hoechste_dateinummer<br>");
//print_r($treffer);
$i=$treffer[0];
$neuer_index=$i+1;
$tofile="backup/$datei_ohne_endung$neuer_index".".$endung";
echo ("tf: $tofile<br>");
rename($verzeichnis.$datei, $tofile);
}
}
}
}
closedir($handle);
}
$verz="./";
if (!file_exists("$verz/backup"))
{
mkdir("$verz/backup");
}
dir_rekursiv($verz);
echo ("fertig");