Ordner mit Dateien löschen
Sebastian M.
- php
Hallo,
wie kann ich in PHP auf einem Server ein Verzeichnis inkl.
enthaltener Dateien und Unterverzeichnissen löschen?
Die Funktion rmdir(Verzeichnis) funktioniert leider nur mit leeren
Verzeichnissen, aber eben nicht, wenn da noch Dateien oder
Unterverzeichnisse drin sind.
Viele Grüße,
Sebastian
Lieber Sebastian,
Du lässt Dir alle Dateien in diesem Verzeichnis und seinen Unterverzeichnissen geben, die Du dann Stück für Stück löschst. Anschließend löschst Du die Unterverzeichnisse rekursiv (also mit dem am tiefsten Verschachtelten anfangen), bis Dein Verzeichnis leer ist.
Wo ist das Problem?
Liebe Grüße aus Ellwangen,
Felix Riesterer.
Hallo Felix,
Du lässt Dir alle Dateien in diesem Verzeichnis und seinen
Unterverzeichnissen geben, die Du dann Stück für Stück löschst.
Anschließend löschst Du die Unterverzeichnisse rekursiv (also mit
dem am tiefsten Verschachtelten anfangen), bis Dein Verzeichnis
leer ist.
Das ich so vorgehen muss, hatte ich mir fast schon gedacht. Wobei
es mir absolut schleierhaft hast, warum die Löschen-Funktion nur
leere Verzeichnisse löschen kann.
Wo ist das Problem?
Ich stehe derzeit auf dem Schlauch, wie ich alle Dateien und
Verzeichnisse Stück für Stück durchgehen kann (beschäftige mich noch
nicht so lange mit PHP).
Das ganze soll natürlich auch sicher sein, nicht das mir hinterher
ein Verzeichnis außerhalb der geplanten Struktur gelöscht wird.
Viele Grüße,
Sebastian
Hallo
Du liest den Inhalt aus, angefangen bei dem Ordner den du löschen möchtest, speicherst alles nacheinander in einem Array, fängst mit dem Letzten Arrayelement an zu löschen und somit löscht du schlussendlich den Ordner den du anfangs löschen wolltest. Sollte genug sicher sein, es steht ja nur der Inhalt des Ordners drin, mit dem du angefangen hast.
mfg
Hallo,
Du liest den Inhalt aus, angefangen bei dem Ordner den du löschen möchtest, speicherst alles nacheinander in einem Array, fängst mit dem Letzten Arrayelement an zu löschen und somit löscht du schlussendlich den Ordner den du anfangs löschen wolltest. Sollte genug sicher sein, es steht ja nur der Inhalt des Ordners drin, mit dem du angefangen hast.
Es ist egal, mit welchem Array-Element man anfängt, hauptsache man geht alle durch. Wichtiger ist es jedoch bei jedem Element zu überprüfen, ob es eine normale Datei oder wieder ein Ordner ist. In letzterem Fall muss das Ganze für diesen Ordner und eventuelle Unterordner wiederholt werden.
Am besten macht man es mit einer Funktion, die den zu löschenden Ordnernamen als Parameter übergeben bekommt und sich bei Unterordner selbst aufruft, mit dem entsprechenden Unterordner als Parameter.
Schöne Grüße,
Johannes
Hallo,
Du könntest das mit einem einfachen Shellkommando machen. Wenn dein Server eine Linuxkiste ist:
[link:http://www.php.net/manual/de/function.shell-exec.php@title=shell_exec]('rm -rf /home/sebastian/verzeichnis/');
Unter Windows wird es da einen equivalenten Befehl geben. Es kann aber sein, dass dein Provider es nicht zulässt solche Shellbefehle auszuführen.
Jeena
Hallo Sebastian,
wie kann ich in PHP auf einem Server ein Verzeichnis inkl.
enthaltener Dateien und Unterverzeichnissen löschen?
http://aktuell.de.selfhtml.org/artikel/php/verzeichnisse/
Viele Grüße,
Christian