Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Подсчет файлов
 
 автор: skor   (02.06.2006 в 18:38)   письмо автору
 
 

Возможно ли подсчитать количество файлов в папке и в подпапках если неизвестно их количество...
например папка dir/
в ней находится 3 txt файла и еще 2 папки test_1/ и test_2/ в этих папках тоже несколько файлов и папок и тд ..

   
 
 автор: AKiRA   (02.06.2006 в 19:28)   письмо автору
 
   для: skor   (02.06.2006 в 18:38)
 

Надо использовать рекурсию.
Пример возьмемем из кода для счета строчек в файлах, взятого с сайта.

<?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.softtime.ru/scripts/replace.php

   
 
 автор: skor   (02.06.2006 в 20:36)   письмо автору
 
   для: AKiRA   (02.06.2006 в 19:28)
 

Пасибо ))

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования