Unlöschbare Ordner auf dem Server löschen!
#1
Hallo Leute,

hier ein Codeschnippsel wie Ihr z.B. von einen Script generierte Ordner wegbekommt worauf Ihr per FTP Client keinen Zugriff mehr drauf habt dieses hat bei mir Funktioniert Wink

[code=php]
<?php

// rec_rmdir - loesche ein Verzeichnis rekursiv
// Rueckgabewerte:
// 0 - alles ok
// -1 - kein Verzeichnis
// -2 - Fehler beim Loeschen
// -3 - Ein Eintrag eines Verzeichnisses war keine Datei und kein Verzeichnis und
// kein Link
function rec_rmdir ($path) {
// schau' nach, ob das ueberhaupt ein Verzeichnis ist
if (!is_dir ($path)) {
return -1;
}
// oeffne das Verzeichnis
$dir = @opendir ($path);

// Fehler?
if (!$dir) {
return -2;
}

// gehe durch das Verzeichnis
while ($entry = @readdir($dir)) {
// wenn der Eintrag das aktuelle Verzeichnis oder das Elternverzeichnis
// ist, ignoriere es
if ($entry == '.' || $entry == '..') continue;
// wenn der Eintrag ein Verzeichnis ist, dann
if (is_dir ($path.'/'.$entry)) {
// rufe mich selbst auf
$res = rec_rmdir ($path.'/'.$entry);
// wenn ein Fehler aufgetreten ist
if ($res == -1) { // dies duerfte gar nicht passieren
@closedir ($dir); // Verzeichnis schliessen
return -2; // normalen Fehler melden
} else if ($res == -2) { // Fehler?
@closedir ($dir); // Verzeichnis schliessen
return -2; // Fehler weitergeben
} else if ($res == -3) { // nicht unterstuetzer Dateityp?
@closedir ($dir); // Verzeichnis schliessen
return -3; // Fehler weitergeben
} else if ($res != 0) { // das duerfe auch nicht passieren...
@closedir ($dir); // Verzeichnis schliessen
return -2; // Fehler zurueck
}
} else if (is_file ($path.'/'.$entry) || is_link ($path.'/'.$entry)) {
// ansonsten loesche diese Datei / diesen Link
$res = @unlink ($path.'/'.$entry);
// Fehler?
if (!$res) {
@closedir ($dir); // Verzeichnis schliessen
return -2; // melde ihn
}
} else {
// ein nicht unterstuetzer Dateityp
@closedir ($dir); // Verzeichnis schliessen
return -3; // tut mir schrecklich leid...
}
}

// schliesse nun das Verzeichnis
@closedir ($dir);

// versuche nun, das Verzeichnis zu loeschen
$res = @rmdir ($path);

// gab's einen Fehler?
if (!$res) {
return -2; // melde ihn
}

// alles ok
return 0;
}

// loesche das Verzeichnis /tmp/test_verzeichnis
$res = rec_rmdir ('/tmp/test_verzeichnis');
switch ($res) {
case 0:
echo'das Verzeichnis wurde korrekt gelöscht';
break;
case -1:
echo'das war kein Verzeichnis';
break;
case -2:
echo'ein Fehler ist aufgetreten';
break;
case -3:
echo'die Funktion ist über einen Dateityp gestolpert, den sie nicht kennt';
break;
default:
echo'Die Funktion hat irgend etwas zurückgegeben, was sie eigentlich nicht sollte';
break;
}
?>
[/code]
  Zitieren


Nachrichten in diesem Thema
Unlöschbare Ordner auf dem Server löschen! - von KingGO - 22.08.2006, 19:21
[Kein Betreff] - von cHAp - 25.08.2006, 23:13
[Kein Betreff] - von KingGO - 26.08.2006, 10:32
[Kein Betreff] - von cHAp - 28.08.2006, 15:56
[Kein Betreff] - von KingGO - 28.08.2006, 20:36
[Kein Betreff] - von cHAp - 31.08.2006, 19:23
[Kein Betreff] - von KingGO - 01.09.2006, 13:23
[Kein Betreff] - von cHAp - 02.09.2006, 18:28

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 3 Gast/Gäste