使用 php 列出目录中的所有文件夹子文件夹和文件

2022-08-30 08:29:29

请给我一个解决方案,使用php列出目录中的所有文件夹,子文件夹,文件。我的文件夹结构是这样的:

Main Dir
 Dir1
  SubDir1
   File1
   File2
  SubDir2
   File3
   File4
 Dir2
  SubDir3
   File5
   File6
  SubDir4
   File7
   File8

我想获取每个文件夹中所有文件的列表。

php 中是否有任何 shell 脚本命令?


答案 1
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');

答案 2

一种非常简单的显示文件夹结构的方法使用类(PHP 5 >= 5.3.0,PHP 7)并生成ASCII图形树。RecursiveTreeIterator

$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

还可以通过使用 更改前缀来控制树的 ASCII 表示形式,例如RecursiveTreeIterator::setPrefixPart$it->setPrefixPart(RecursiveTreeIterator::PREFIX_LEFT, "|");


推荐