【发布时间】:2021-11-11 01:43:00
【问题描述】:
一个新手的简单问题,我的 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; 回声$文件计数; /* 调试 */ 回声“$总计”; /* 调试 */ echo "$path/$file"; /* 调试 */ getFilecount("$path/$file", $filecount, $total); } } } 返回$总计; }
非常感谢任何帮助。
【问题讨论】: