Im пытается пересечь дерево файлов в первом порядке, поэтому я ожидаю, что файлы в каталоге будут перечислены первыми, прежде чем перейти на следующий уровень. Однако по какой-то причине этого не происходит. Здесь Вы можете найти свой кодPHP RecursiveDirectoryIterator Self_first is not working
$it = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($f["path"], RecursiveDirectoryIterator::SKIP_DOTS), RecursiveIteratorIterator::SELF_FIRST);
foreach ($it as $fileObject) {
echo $fileObject."\n";
}
И это печатает следующий пример (если мой входной каталог/данные/документы/
- // документы/имя файла данных 1.pdf
- /данные/документы/имя файла 2.pdf
- /данные/документы/реж A/файл 4.jpg
- /данные/документы/реж
- // документы/имя файла данных 5.pdf
- /data/documents/dirB/filex.pdf
- /data/documents/dirB/filey.jpg
- /data/documents/dirB/dirC/filew.pdf
- /данные/документы/DIRB /dirC/filev.pdf
- /данные/документы/DIRB/DIRC
- /данные/документы/DIRB
- // документы/имя файла данных r.pdf
Да, файлы и иногда t у его каталогов есть пробелы в их названии. Я запускаю это в командной строке, используя версию php PHP 5.3.3 (cli) (построено: 11 декабря 2013 года 03:29:57)
Любая помощь будет принята с благодарностью.
UPDATE: Я бы ожидал следующего вывода;
- /данные/документы/реж
- /данные/документы/реж A/файл 4.jpg
- /данные/документы/DIRB
- /data/documents/dirB/filex.pdf
- /data/documents/dirB/filey.jpg
- /данные/документы/DIRB/DIRC
- /data/documents/dirB/dirC/filew.pdf
- /данные/документы/DIRB/DIRC /filev.pdf
- // документы/имя файла данных 1.pdf
- /данные/документы/имя файла 2.pdf
- // документы/имя файла данных 5.pdf
- /данные/документы/имя файла r.pdf
Вы имеете в виду, что поддиректории должны быть указаны после файлов первого уровня? –
Ну, с SELF_FIRST, выбранным как опция, я думаю, что сначала должны быть файлы первого уровня, затем каталоги и их подкаталоги. Как вы можете сказать, у меня есть файлы первого уровня перед подкаталогами и некоторые после. –
Из этого ответа http://stackoverflow.com/a/12236744/2706988. ':: SELF_FIRST', а затем файлы. –