Hallo,
ich habe also eine XAMPP-Installation und versuche nun per PHP einen bestimmten Pfad innerhalb der Seite (sagen wir mal /abc) zu löschen. Der Pfad heißt dabei z.B. so: /abc/xyz/temp. Also rufe ich vom /abc (Siteroot) die Löschfunktion mit removeDir('xyz'); auf.
Somit schick ich eine rekursive Funktion (siehe unten) los, um mir die Unterverz. und Dateien zu löschen. Die Dateien (auch die in /temp) löscht er ohne zu zicken. Jedoch bricht er beim Löschen des Verz. /temp mit der Meldung 'Permission denied' ab.
Meine Frage lautet nun: Warum das? Unter Windows sollte man doch solche Rechte:Probs nicht haben, oder geh ich da fehl in der Annahme?
Hier die rek. Fkt.:
Code
function removeDir($dir) {
// rekursive Löschfunktion für Dateien und Verzeichnisse
// Rückgabewert: true = Fehler | false = erfolgreich
//------------------------------------
if (substr($dir, strlen($dir), 1) == '/')
$dir = substr($dir, 0, strlen($dir)-1); // abschliessendes / entfernen
if (!$handle = @opendir($dir)) return true; // Fehler beim Löschen
while ($obj = readdir($handle)) {
// Default-Pfade . & .. ignorieren
if ($obj == '.' || $obj == '..') continue;
if (is_dir($dir.$obj)) // ist $obj ein Verz. ?
if (removeDir($dir.$obj))
return true; // Fehler beim Löschen
else
if (unlink($dir.'/'.$obj))
// jsAlert($dir.$obj.' gelöscht');
}
// Verzeichniss selbst löschen
if (!rmdir($dir)) {
return true; // Fehler beim Löschen
}
return false;
}
Alles anzeigen