一个新手的简单问题,我的 Google-Fu 让我失望了。使用 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
对于“./Dir_A”,脚本应返回“5”。
我拼凑了以下内容,但并没有完全返回正确的答案,我不确定为什么:
函数 getFilecount($path = '.', $filecount = 0, $total = 0){
$ignore = array('cgi-bin', '.', '..', '.DS_Store' );
$dh = @opendir( $path );
而(假!==($file=readdir($dh))){
if( !in_array( $file, $ignore ) ){
if(is_dir("$path/$file")){
$filecount = count(glob("$path/$file/" . "*"));
$total += $filecount;
回声$文件计数;/* 调试 */
回声“$总计”;/* 调试 */
回声“$路径/$文件
”;/* 调试 */
getFilecount("$path/$file", $filecount, $total);
}
}
}
返回$总计;
}
我将不胜感激任何帮助。