Rolf B: Verzeichnis leeren

Beitrag lesen

Hallo Bastian,

naja gut, readdir ist aus PHP 4 und scandir wurde in PHP 5 eingeführt.

Aber deswegen ist readdir nicht missbilligt. Und der liebe Tim macht ein paar Fehler.

(1) dass readdir false liefert, wenn keine Datei mehr kommt, ist kein Problem. Aus Gründen:

  • Eine Datei namens "0" hätte das Potenzial, mit false verwechselt zu werden. Der einzige andere String, der sonst noch falsy ist, ist "". Aber eine Datei namens "" gibt's nicht. Kann ich mir nicht vorstellen.
  • Wenn man weiß, dass ein API einen Typ X oder FALSE zurückliefert, und man trotzdem mit while ($data = getdata()) { ... } arbeitet, gehört man standrechtlich mit dem COBOL Handbuch erschlagen. In solchen Fällen arbeitet man mit while (FALSE !== ($data = getdata())) { ... } und alles ist gut.

(2) sein Beispiel mit dem Filestream API ist eine Kopie von readdir. Schade. Ich hätt gern gewusst, ob diese Variante auch unter Windows funktioniert.

(3) er hat die Alternative glob() glott - öh - glatt vergessen. Und die DirectoryIterator sowieso. Ich hab ihm das mal als Kommentar geschrieben, der muss aber wohl noch freigegeben werden.

Wenn Du sicher bist, dass Dein Ordner nur Dateien enthält und keine Unterverzeichnisse, bist Du mit scandir am schnellsten bedient. Wenn Du erstmal prüfen musst, ob es Verzeichnisse sind, sieht die Sache anders aus.

Rolf

--
sumpsi - posui - obstruxi