0

我试图显示特定目录中的所有文件夹。基本上,每次添加新文件夹时,它都会自动显示在列表中。这是我到目前为止所拥有的。我从其他帖子中拼凑了这个,似乎没有工作,不知道为什么。我收到一个关于权限的严重错误,但没有找到。

        $dir = '/s/';
        $result = array();

        if (is_dir($dir)) {
                $iterator = new RecursiveDirectoryIterator($dir);
                foreach (new RecursiveIteratorIterator($iterator, RecursiveIteratorIterator::CHILD_FIRST) as $file) {                    
                    if (!$file->isFile()) {
                        $result[] = 'path: ' . $file->getPath(). ',  filename: ' . $file->getFilename();
                    }
                }

        }

        print_r($result);
4

1 回答 1

0

您可以使用该自制代码:

function collect_files($dir)
{
if (is_dir($dir)) {
    if ($dh = opendir($dir)) {
        $dir = $dir.'/';
        while (($file = readdir($dh)) !== false) {
        if(filetype($dir . $file)=='file'){
            $path = strchr($dir,'/');            
            echo "$file - $path<br>\n";
            }
        }
        rewinddir($dh);
        while (($file = readdir($dh)) !== false) {
        if(filetype($dir . $file)=='dir')
            if($file!='.'&&$file!='..'){
            collect_files($dir.$file);
            }
        }
        closedir($dh);
    }
}
}
collect_files('.');
于 2012-09-16T23:35:38.557 回答