Общо файлове в поддиректории само там, където с strlen е определена дължина

Имам проблеми с намирането на отговор на този въпрос.

Това, което трябва да постигна, е да сканирам директория с поддиректории, за да върна общ брой файлове, където броят на символите в името на файла е с дължина 48 знака.

Така че нещо като:

сканира c:\blah за файлове, но връща резултат само ако името на файла е 48 знака, след това добавете общата сума на всички файлове, намерени в c:\blah, което ще доведе до c:\blah с (пример) 3 файла

Не е необходимо да се показват имената на файловете, а само общия брой файлове, отговарящи на този критерий.


person Rik    schedule 19.10.2012    source източник
comment
Плащане stackoverflow.com/questions/10895343/ stackoverflow.com/questions/224408/   -  person    schedule 19.10.2012
comment
@user1758246 Моля, маркирайте отговорите като приети, които са работили за вас тук и по другите ви въпроси. Има отметка до стрелките за гласуване за/против всеки отговор.   -  person Brian Webster    schedule 17.01.2013


Отговори (1)


Опитайте тази:

<?php

$length = 48;
$directory = 'C:/';

$total = 0;

foreach (new DirectoryIterator($directory) as $fn)
{
    if ($fn->isDir() && strlen($fn->getFilename()) == $length)
    {
        foreach (new DirectoryIterator($fn->getPathname()) as $sfn)
        {
            if (!$sfn->isDot())
                $total++;
        }
    }
}

echo $total;
person noetix    schedule 19.10.2012
comment
Знаеш ли какво... това е перфектно, но пропуснах много важна бележка - това е на отдалечен сървър. Пример \\thisserver\d$\another\folder\тук - person Rik; 19.10.2012
comment
Добре, разбирам, че мога да отида отдалечено, след като имам достъп... но как да отида под поддиректории? Това (поправете ме, ако греша) е само едно дълбоко. - person Rik; 19.10.2012