Antwort an „Rolf B“ verfassen

Hallo Bastian,

ich weiß nicht, ob Du es versehentlich richtig gemacht hast oder ob Du das so überlegt hast, aber ich möchte auf diesen Punkt hinweisen.

scandir liest das Verzeichnis in ein Array ein. Die foreach-Schleife verarbeitet dann das Array. D.h. wenn die unlink Aufrufe laufen, wird das Verzeichnis nicht gleichzeitig von Dir gelesen.

Es gibt alternativ auch readdir. Damit liest man das Verzeichnis Datei für Datei - und hier würde die Gefahr eines Konflikts bestehen, wenn man in der Schleife löscht. Es könnte dann passieren, dass der Lesezugriff auf das Verzeichnis durch die Löschungen durcheinander kommt und man Dateien überspringt.

Da das Verhalten von readdir je nach OS und Filesystem anders sein kann, sind das schwer testbare Szenarien. Deswegen: scandir ist hier genau richtig.

Oder glob, wenn ein Suchmuster gebraucht wird.

Rolf

--
sumpsi - posui - obstruxi
freiwillig, öffentlich sichtbar
freiwillig, öffentlich sichtbar
freiwillig, öffentlich sichtbar

Ihre Identität in einem Cookie zu speichern erlaubt es Ihnen, Ihre Beiträge zu editieren. Außerdem müssen Sie dann bei neuen Beiträgen nicht mehr die Felder Name, E-Mail und Homepage ausfüllen.

abbrechen