如何使用RecursiveDirectoryIterator使用isDot()删除点?

时间:2015-09-03 09:24:41

标签: php

我有这个简单的下面的代码来帮助我获取所有文件和子文件夹的内容。我从PHP烹饪书中获取了这段代码。它说我可以使用isDot(),但它没有解释如何...

我尝试在数组之前放置一个if但它不起作用...

if (! $file->isDot())

我不知道在添加到数组时如何同时放入getPathname和isDot。

我已经阅读过PHP网站,但不明白如何适应。

代码:

$dir  =  new  RecursiveDirectoryIterator('/usr/local'); 

$dircontent = array();
foreach (new RecursiveIteratorIterator($dir) as $file) {

$dircontent [] = $file -> getPathname();

}
print_r($dircontent);

1 个答案:

答案 0 :(得分:1)

使用FilesystemIterator::SKIP_DOTS中的RecursiveDirectoryIterator标记删除点文件:

$dir    = '/usr/local';
$result = array();
$files  = new RecursiveIteratorIterator(
    new RecursiveDirectoryIterator(
        $dir,
        FilesystemIterator::SKIP_DOTS
    )
);


foreach ($files as $file) {
    $result[] = $file->getPathname();
}

print_r($result);

isDot()失败的原因是您的$file变量包含SplFileInfo个对象,而不是DirectoryIterator