2016-01-23 105 views
0

我只需要获取目录中的文件夹名称。到目前为止,我发现DirectoryIterator非常有用。但是我没有得到所需的文件夹名称。只获取目录中的文件夹名称,忽略点并忽略某些文件夹

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

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

请参阅:我也想同时具有忽略文件夹我选择的能力跳过点()和(..) 。

+0

的可能的复制(http://stackoverflow.com/questions/4202175/php-script-通过循环遍历所有目录中的文件) – Rein

+0

不会'!$ fileinfo-> isDot()'已经跳过'.'和'..' ?? – Andrew

+0

@Andrew是的,那部分是故意的。这是我解决方案的一部分。但总的来说,它似乎并不奏效。无论如何,我已经在下面提出了一个备用解决方案。 – MiKz

回答

0

这里是一个解决办法:?在所有目录中的文件的PHP脚本循环]

$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); 
} 
0

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