Всего файлов в подкаталогах только там, где 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 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