3 回答
TA贡献1772条经验 获得超8个赞
将RecursiveDirectoryIterator与RecursiveIteratorIterator结合使用。
$di = new RecursiveDirectoryIterator('path/to/directory');
foreach (new RecursiveIteratorIterator($di) as $filename => $file) {
echo $filename . ' - ' . $file->getSize() . ' bytes <br/>';
}
TA贡献1830条经验 获得超3个赞
如果您的子目录包含子子目录,则可能需要为此使用递归函数
$main = "MainDirectory";
function readDirs($main){
$dirHandle = opendir($main);
while($file = readdir($dirHandle)){
if(is_dir($main . $file) && $file != '.' && $file != '..'){
readDirs($file);
}
else{
//do stuff
}
}
}
没有测试代码,但这应该接近您想要的。
TA贡献1821条经验 获得超4个赞
您需要将路径添加到递归调用中。
function readDirs($path){
$dirHandle = opendir($path);
while($item = readdir($dirHandle)) {
$newPath = $path."/".$item;
if(is_dir($newPath) && $item != '.' && $item != '..') {
echo "Found Folder $newPath<br>";
readDirs($newPath);
}
else{
echo ' Found File or .-dir '.$item.'<br>';
}
}
}
$path = "/";
echo "$path<br>";
readDirs($path);
- 3 回答
- 0 关注
- 448 浏览
添加回答
举报