Php 递归目录迭代器以列出目录
我想使用RecursiveDirectoryIterator以递归方式列出文件和目录。下面是我的代码Php 递归目录迭代器以列出目录,php,Php,我想使用RecursiveDirectoryIterator以递归方式列出文件和目录。下面是我的代码 $rii=new recursive迭代器(new RecursiveDirectoryIterator(“.”,RecursiveDirectoryIterator::SKIP_DOTS)); foreach($rii作为$file){ 如果($file->isDir()){ echo“D”。$file->getPathName(); }否则{ echo“F”。$file->getPathNa
$rii=new recursive迭代器(new RecursiveDirectoryIterator(“.”,RecursiveDirectoryIterator::SKIP_DOTS));
foreach($rii作为$file){
如果($file->isDir()){
echo“D”。$file->getPathName();
}否则{
echo“F”。$file->getPathName();
}
回声“
\n”;
}
问题是它根本不返回目录。仅列出文件。当我省略SKIP_DOTS标志时,我确实得到了目录,但形式是dir/
和dir/。
,这显然不是我想要的
现在我当然可以自己去除尾随的点,但我想知道是否有更好的内置方法我不知道?$rdi=new recursivedirectoryderator('.',recursivedirectoryderator::KEY_AS_PATHNAME | recursivedirectoryderator::SKIP_dots);
foreach(新的递归迭代器($rdi,递归迭代器::SELF_FIRST)为$file=>$info){
echo$文件。“\n”;
}
示例文件/目录结构
。
|--a
|`--x
||--hbye.txt
|`--hello.txt
|--b
|”“a
`--script.php
4个目录,3个文件
脚本输出:
/a
/a/x
./a/x/hbye.txt
./a/x/hello.txt
/script.php
/b
/b/a