仅获取目录中的文件夹名称,跳过点并忽略某些文件夹

时间:2016-01-23 09:46:58

标签: php iterator directory-structure

我只需要获取目录中的文件夹名称。到目前为止,我发现DirectoryIterator很有用。但是我没有得到所需的文件夹名称。

$dir = new DirectoryIterator(dirname($directory));
foreach ($dir as $fileinfo) {

    if (!$fileinfo->isDot()) {
        var_dump($fileinfo->getFilename());
        if ($fileinfo->isDir()) {
        //echo $fileinfo->getFilename() . '<br>';
        }    
    }    
}

请参阅:我也想跳过点()和( .. ) 虽然能够忽略我选择的文件夹。

2 个答案:

答案 0 :(得分:0)

DirectoryIterator允许您获取目录的文件名亲属,而不是相对于进程的当前目录。连接$directory$fileinfo->getFileName()以获得正确的可用路径。

答案 1 :(得分:0)

这是一个解决方案:

$path = 'PATH';

if ($handle = opendir($path)) {
    while (false !== ($file = readdir($handle))) {
        //skips dots  
        if ('.' === $file) continue;
        if ('..' === $file) continue;
        //ignore folders
        if ('FOLDER_TO_IGNORE' === $file) continue;

        //check if filename is a folder
        if (is_dir($file)){
        //DO SOMETHING WITH FOLDER ($file)
        }

    }
    closedir($handle);
}