请给我一个使用 php 列出目录中所有文件夹、子文件夹、文件的解决方案。我的文件夹结构是这样的:
Main Dir Dir1 SubDir1 File1 File2 SubDir2 File3 File4 Dir2 SubDir3 File5 File6 SubDir4 File7 File8
我想获取每个文件夹内所有文件的列表。
php中有shell脚本命令吗?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
显示文件夹结构的一种非常简单的方法是使用
RecursiveTreeIterator类(PHP 5 >= 5.3.0、PHP 7)并生成 ASCII 图形树。$it = new RecursiveTreeIterator(new RecursiveDirectoryIterator("/path/to/dir", RecursiveDirectoryIterator::SKIP_DOTS)); foreach($it as $path) { echo $path."<br>"; }http://php.net/manual/en/class.recursivetreeiterator.php
通过使用
RecursiveTreeIterator::setPrefixPart更改前缀,还可以对树的 ASCII 表示进行一些控制,例如$it->setPrefixPart(RecursiveTreeIterator::PREFIX_LEFT, "| ");function listFolderFiles($dir){ $ffs = scandir($dir); unset($ffs[array_search('.', $ffs, true)]); unset($ffs[array_search('..', $ffs, true)]); // prevent empty ordered elements if (count($ffs) < 1) return; echo '<ol>'; foreach($ffs as $ff){ echo '<li>'.$ff; if(is_dir($dir.'/'.$ff)) listFolderFiles($dir.'/'.$ff); echo '</li>'; } echo '</ol>'; } listFolderFiles('Main Dir');