【问题标题】:list files inside directory of a directory列出目录目录中的文件
【发布时间】:2012-12-09 06:34:34
【问题描述】:

为了循环目录中的所有文件,我在 php 中创建了这段代码:

$dir = new DirectoryIterator(dirname(__FILE__));
$files = scandir($dir.'/');
foreach($files as $file) 
{
    echo $file;
    echo "\n";
}

但是我无法列出目录的多个子目录中的所有文件。

【问题讨论】:

标签: php


【解决方案1】:

使用RecursiveDirectoryIterator

<?php

$path = realpath('/etc');

$objects = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path), RecursiveIteratorIterator::SELF_FIRST);
foreach($objects as $name => $object){
    echo "$name\n";
}

?>

【讨论】:

    【解决方案2】:

    试试这个。 See this in php manual

    function loop_dir($dir) {
        $iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir),
                                                  RecursiveIteratorIterator::CHILD_FIRST);
        foreach ($iterator as $path) {
          echo $path
        }
    }
    

    【讨论】:

    • 看起来@GBD 正在同时回答并先进入。和他一起去。
    【解决方案3】:

    就这么简单:

    $dir = dir('DIRECTORY_TO_DISPLAY_HERE');
    while (($file = $dir->read()) !== false) {
        if ($file != '..' && $file != '.') {
            echo $file;
        }
    }
    $dir->close();
    

    【讨论】:

    • 这不会进入子目录,这是问题所要求的。
    猜你喜欢
    • 2023-03-03
    • 1970-01-01
    • 2011-02-23
    • 2012-09-02
    • 2012-11-14
    • 2020-01-29
    • 1970-01-01
    相关资源
    最近更新 更多