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 に答える