Einfache Frage für ein Newb und mein Google-Fu ist fehlgeschlagen. Wie können Sie mit PHP die Anzahl der Dateien in einem bestimmten Verzeichnis zählen, einschließlich aller Unterverzeichnisse (und eventuell vorhandener Unterverzeichnisse usw.)? z.B. wenn Verzeichnisstruktur wie folgt aussieht:Rekursiv zählende Dateien mit PHP
/Dir_A/ /Dir_A/File1.blah /Dir_A/Dir_B/ /Dir_A/Dir_B/File2.blah /Dir_A/Dir_B/File3.blah /Dir_A/Dir_B/Dir_C/ /Dir_A/Dir_B/Dir_C/File4.blah /Dir_A/Dir_D/ /Dir_A/Dir_D/File5.blah
Das Skript sollte mit ‚5‘ Rückkehr für „./Dir_A“.
Ich habe zusammen die gepflasterten folgend, aber es ist nicht ganz die richtige Antwort zurückkehren, und ich bin nicht sicher, warum:
function getFilecount($path = '.', $filecount = 0, $total = 0){ $ignore = array('cgi-bin', '.', '..', '.DS_Store'); $dh = @opendir($path); while(false !== ($file = readdir($dh))){ if(!in_array($file, $ignore)){ if(is_dir("$path/$file")){ $filecount = count(glob("$path/$file/" . "*")); $total += $filecount; echo $filecount; /* debugging */ echo " $total"; /* debugging */ echo " $path/$file
"; /* debugging */ getFilecount("$path/$file", $filecount, $total); } } } return $total; }
ich sehr jede mögliche Hilfe schätzen würde.
Dieser Code funktioniert genau wie gewünscht. –
Hallo. Danke für die schnelle Hilfe. Dieses Skript führt zu einem Zeitüberschreitungsfehler für mich. "Fataler Fehler: Maximale Ausführungszeit von 30 Sekunden überschritten". Nicht sicher warum. Im Zielverzeichnis befinden sich nur 8 Ordner und 68 Dateien. – user18359
Versuchen Sie, die Kopie zu kopieren, die gerade dort ist. Meine ursprüngliche Antwort hatte einen Fehler, dieser ist getestet und funktioniert. –