RecursiveDirectoryIterator首先显示文件夹

时间:2017-08-03 18:50:00

标签: php

我正在使用RecursiveDirectoryIterator来显示路径中的文件:

$pasta = $_SERVER["DOCUMENT_ROOT"]."/files/";

$dir = new RecursiveDirectoryIterator($pasta, FilesystemIterator::SKIP_DOTS);

$dir  = new RecursiveIteratorIterator($dir, RecursiveIteratorIterator::CHILD_FIRST);

$dir->setMaxDepth(1);

foreach ($dir as $fileinfo) { 
 echo $fileinfo->getFilename()."<br/>";
}

以字母顺序显示所有文件和文件夹,有没有办法按字母顺序显示第一个文件夹而不是文件?

1 个答案:

答案 0 :(得分:2)

Using the isDir method to separate directives from files.

$pasta = $_SERVER["DOCUMENT_ROOT"]."/files/";

$dir = new RecursiveDirectoryIterator($pasta, FilesystemIterator::SKIP_DOTS);

$dir  = new RecursiveIteratorIterator($dir, RecursiveIteratorIterator::CHILD_FIRST);

$dir->setMaxDepth(1);

$dirs  = [];
$files = [];
foreach ($dir as $fileinfo) {
    if($fileinfo->isDir())
        $dirs[] = $fileinfo->getFilename(); 
    else
        $files[] = $fileinfo->getFilename();
}
$result = array_merge($dirs,$files);

echo "<pre>";
print_r($result);

echo implode('<br>', $result);