以递归方式返回文件夹子文件夹中除目录之外的所有文件的列表

时间:2015-03-26 08:06:53

标签: php

我希望数组的值只作为文件名,只能在文件夹子文件夹中递归显示。它不得包含子文件夹或子子文件夹的名称。 请注意我不想只打印文件的名称,而是在执行完成时我想要累积结果。 我试过Link 还有许多其他解决方案没有运气(使用array_merge来保留Previous值)

My code is here

1 个答案:

答案 0 :(得分:0)

我同意之前已经回答了,但每隔一段时间玩递归就很有趣,所以在这里你去...

<?php
function listFolderFiles($dir=null)
{
    $rtn = array();
    if (is_dir($dir)) {
        #echo '<ol>';
        foreach (new DirectoryIterator($dir) as $fileInfo) {
            if (!$fileInfo->isDot()) {
                #echo '<li>' . $fileInfo->getFilename();

                if ($fileInfo->isDir()) {
                    echo 'directory';
                    $rtn = array_merge($rtn, listFolderFiles($fileInfo->getPathname()));
                } else {
                    echo 'file';
                    $rtn[] = $fileInfo->getFilename();
                }
                #echo '</li>';
            }
        }
        #echo '</ol>';
    } else {
        echo "No such directory '$dir'";
    }
    return $rtn;
}
$result = listFolderFiles('\tmp');

echo "result=<pre>".print_r($result,true)."</pre><br />\n";
#print_r(array_unique($result));