Рекурсивно считая файлы с PHP

Для всех, у кого проблема с «DLL-загрузкой не удалась» в Windows 10 / Python 3.6.x / RTX20xx.

Комбинация CUDA 10.0 (не 10.1!), CuDNN 7.5.0 отлично работает для меня (по состоянию на 12 апреля 2019 года). У меня также установлена ​​Visual Studio 2015 (но я не уверен, что это необходимо).

Не забудьте добавить местоположение файла cuDNN * .dll (это каталог /bin/ в вашем каталоге CUDA) в ваш PATH.

Если у вас CUDA 10.1, просто удалите его, установите 10.0, добавьте файлы cuDNN в каталог 10.0 и перезагрузите компьютер.

Тензор потока можно установить с помощью pip install tensorflow-gpu

8
задан user18359 12 March 2009 в 23:49
поделиться

4 ответа

Это должно добиться цели:

function getFileCount($path) {
    $size = 0;
    $ignore = array('.','..','cgi-bin','.DS_Store');
    $files = scandir($path);
    foreach($files as $t) {
        if(in_array($t, $ignore)) continue;
        if (is_dir(rtrim($path, '/') . '/' . $t)) {
            $size += getFileCount(rtrim($path, '/') . '/' . $t);
        } else {
            $size++;
        }   
    }
    return $size;
}
18
ответ дан 5 December 2019 в 05:08
поделиться

Используйте SPL, затем посмотрите, получаете ли Вы все еще ошибку.

RecursiveDirectoryIterator

Пример использования:

<?php

$path = realpath('/etc');

$objects = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path), RecursiveIteratorIterator::SELF_FIRST);
foreach($objects as $name => $object){
    echo "$name\n";
}

?>

Это печатает список всех файлов и каталоги под $path (включая $path ifself). Если Вы хотите опустить каталоги, удалите RecursiveIteratorIterator:: часть SELF_FIRST.

Затем просто используйте isDir ()

16
ответ дан 5 December 2019 в 05:08
поделиться

Проверьте руководство PHP glob() функция: http://php.net/glob

Это имеет примеры в комментариях относительно того, как сделать это рекурсивным.

-2
ответ дан 5 December 2019 в 05:08
поделиться

Почему Вы передаете $filecount? [Передал - в], значение не используется; единственное использование на уровне "$total + = $filecount", и Вы переопределяете $filecount незадолго до этого.

Вы пропускаете случай, когда функция встречается с постоянным клиентом (неdir) файл.

Править: Я просто заметил вызов к шарику (). Это не необходимо. Ваша функция рекурсивно касается каждого файла в целом дереве каталогов, так или иначе. См. ответ @Paolo Bergantino.

0
ответ дан 5 December 2019 в 05:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: