我需要获取一个指定目录下所有JPG文件的总数,包括其所有子目录但不包括子目录的子目录。
目录结构如下:
dir1/ 2个文件 subdir 1/ 8个文件
总计dir1 = 10个文件
dir2/ 5个文件 subdir 1/ 2个文件 subdir 2/ 8个文件
总计dir2 = 15个文件
我有这个函数,但它不能正常工作,因为它只计算最后一个子目录中的文件,并且总数是实际文件数量的两倍。(如果我在最后一个子目录中有40个文件,则会输出80)
```python def count_files(path): count = 0 for root, dirs, files in os.walk(path): for file in files: if file.endswith('.jpg'): count += 1 return count ```
目录结构如下:
dir1/ 2个文件 subdir 1/ 8个文件
总计dir1 = 10个文件
dir2/ 5个文件 subdir 1/ 2个文件 subdir 2/ 8个文件
总计dir2 = 15个文件
我有这个函数,但它不能正常工作,因为它只计算最后一个子目录中的文件,并且总数是实际文件数量的两倍。(如果我在最后一个子目录中有40个文件,则会输出80)
```python def count_files(path): count = 0 for root, dirs, files in os.walk(path): for file in files: if file.endswith('.jpg'): count += 1 return count ```
public function count_files($path) {
global $file_count;
$file_count = 0;
$dir = opendir($path);
if (!$dir) return -1;
while ($file = readdir($dir)) :
if ($file == '.' || $file == '..') continue;
if (is_dir($path . $file)) :
$file_count += $this->count_files($path . "/" . $file);
else :
$file_count++;
endif;
endwhile;
closedir($dir);
return $file_count;
}