php递归统计目录下指定扩展名文件个数
[code]/**
* 统计目录下指定扩展名文件个数
* @param string $dir 统计目录路径
* @param string $ext 文件扩展名
* @return number
*/
function get_file_count($dir, $ext) {
$count = 0;
$dp = opendir ( $dir );
while ( ! false == $curFile = readdir ( $dp ) ) {
if ($curFile != '.' && $curFile != '..' && $curFile != '') {
if (is_dir ( $dir . '/' . $curFile )) {
// 如果当前文件是目录,递归调用统计函数进行统计,将统计到的文件数累计到当前目录统计的结果中。
$count += get_file_count ( $dir . '/' . $curFile, $ext );
} else {
// 检查当前文件的扩展名,如果符合要求,累计计数器。
if (preg_match ( "/.{$ext}$/i", $curFile )) {
$count ++;
}
}
}
}
return $count;
}
echo get_file_count ( 'C:/', 'exe' ); // 测试统计C盘下共有多少exe文件。文件太多了,程序死了╮(╯▽╰)╭…[/code]
我们可以小改一下,只让他统计 C盘根目录下的文件,不包括目录
[code]/**
*
* @param string $dir 统计目录路径
* @param string $ext 文件扩展名
* @return number
*/
function get_file_count($dir, $ext) {
$count = 0;
$dp = opendir ( $dir );
while ( ! false == $curFile = readdir ( $dp ) ) {
if ($curFile != '.' && $curFile != '..' && $curFile != '') {
if (preg_match ( "/.{$ext}$/i", $curFile )) {
$count ++;
}
}
}
return $count;
}
echo get_file_count ( 'C:/', '' ); // 测试统计C盘 根目录下共有多少文件,不包括目录[/code]