Simple question for a newb and my Google-Fu is failing me. Using PHP, how can you count the number of files in a given directory, including any sub-directories (and any sub-directories they might have, etc.)? e.g. if directory structure looks like this:
/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
The script should return with '5' for "./Dir_A".
I've cobbled together the following but it's not quite returning the correct answer, and I'm not sure why:
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;
}
I'd greatly appreciate any help.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…