繁体   English   中英

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

[英]Return the list of all files excluding directory in the folders subfolders recursively PHP

我只想递归地将值数组作为文件夹的子文件夹中的文件名。 它不能包含子文件夹或子子文件夹的名称。 请注意,我不想只打印文件名,而是要在执行完成时累积结果。 我已经尝试过Link和其他很多运气不佳的解决方案(使用array_merge保留以前的值)

我的代码在这里

我同意以前已经回答过,但是偶尔玩递归很有趣,所以这里就来...

<?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));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM