(PHP) Как подсчитать количество файлов в директории?

Ajvengo
Дата: 11.08.2006 18:25:03
Подскажите можно как нибудь подсчитать количество файлов в директории, включая подкаталоги, но не считать сами каталоги, только файлы. Какая функция этим занимается. Зарание спасибо.
Модератор: Называйте топики более информативно
vkle
Дата: 11.08.2006 19:07:31

Кажется, такой нет в ПХП.
Можно написать свою, которая подсчитывает и возвращает сумму к-ва файлов в
директории и входного параметра, а для каждой директории вызывается
рекурсивно.

Posted via ActualForum NNTP Server 1.3

sergkarpenko
Дата: 11.08.2006 19:08:39
BossIT
Дата: 11.08.2006 22:13:46
Ajvengo, Вам надо использовать рекурсию.

<?php 
function scan_dir($dirname)  
  {  
    // Объявляем переменные замены глобальными  
    GLOBAL $count_files, $count_dirs;  
    // Открываем текущую директорию  
    $dir = opendir($dirname);  
    // Читаем в цикле директорию  
    while (($file = readdir($dir)) !== false)  
    {  
      // Если файл обрабатываем его содержимое  
      if($file != "." && $file != "..")  
      {  
        // Если имеем дело с файлом - производим в нём замену  
        if(is_file($dirname."/".$file))  
        {  
         $count_files++;  
        }  
        // Если перед нами директория, вызываем рекурсивно  
        // функцию scan_dir  
        if(is_dir($dirname."/".$file))  
        {  
          $count_dirs++;  
          scan_dir($dirname."/".$file);  
        }  
      }  
    }  
    // Закрываем директорию  
    closedir($dir);  
  } 
?> 

Как вызвать:
<? 
$dirname = "./"; // Текущая директория 
 scan_dir($dirname);  // Вызов рекурсивной функции 
 echo "Всего папок: $count_dirs <br/> "; 
 echo "Всего файлов: $count_files <br/> "; 
?> 

http://www.labnit.ru - Лаборатория Новых Информационных Технологий
RealSnick
Дата: 11.08.2006 23:16:20
Давным давно glob() изобрели. А вы все на велосипедах =)
http://ru.php.net/glob