nasıl i the full directory tree
kullanarak alabilirsiniz SPL
?
Varsayılan olarak, RecursiveIteratorIterator
en azından ben bir düşünün ne (__construct
. This means it will return files only. If you want to include files and dizinlere ikinci argüman için LEAVES_ONLY
kullanacak full dizin ağacı), yapmanız gerekiyor:
$iterator = new RecursiveIteratorIterator(
new RecursiveDirectoryIterator($path),
RecursiveIteratorIterator::SELF_FIRST
);
ve sonra foreach
üzerine yapabilirsiniz. Eğer bunun yerine çıkış dizin ağacını döndürmek istiyorsanız, bunu örneğin, bir dizi saklayabilirsiniz
foreach ($iterator as $fileObject) {
$files[] = $fileObject;
// or if you only want the filenames
$files[] = $fileObject->getPathname();
}
Ayrıca yaparak foreach
olmadan $fileObjects
dizisi oluşturabilirsiniz:
$files[] = iterator_to_array($iterator);
Sadece isterseniz dizinleri foreach
$iterator
bu gibi üzerinde, döndü:
foreach ($iterator as $fileObject) {
if ($fileObject->isDir()) {
$files[] = $fileObject;
}
}