dir - falsche Rückhabe

ExAByte

Mitglied
Hallo PHPler,

ich habe ein kleines Problem.

Ich möchte wissen, wieviele Dateien in einem Ordner sind, diese notwendigenfalls kopieren wenn älter als XY Tage. Soweit kein Problem. Allerdings macht mir das mutmaßlich "einfache" einen Strich durch die Rechnung, denn erst einmal geht es darum, die Einträge zu zählen. In meinem Testordner sind 3 Dateien, die Funktin gibt mir aber eine 5 zurück, liegt das an der Erzeugung des dir->handles?, wären demnach 3+1 aber warum denn 5?

Danke für eure Erklärung!

Code:


function countFiles($folder) {

$cdir = dir($folder);
$this = intval(0);
while ($entries = $cdir->read()) {
$this++;
}
echo $this;
$cdir->close();

}

Greetins
ExAByte :)
 
Du musst beachten, dass nicht nur Dateien, sondern auch Verzeichnisse mitgezählt werden. Und davon gibt's mindestens zwei, nämlich '.' (Referenz auf das Verzeichnis selbst) und '..' (Referenz auf das übergeordnete Verzeichnis). Man müsste also bei jedem Schleifendurchlauf z.B. per is_file () testen, ob das zurückgegebene Objekt auch wirklich eine Datei ist.


reima
 
Zurück