centos

如何使用readdir遍历目录树

小樊
44
2025-12-29 09:45:18
栏目: 编程语言

readdir 函数是 PHP 中用于读取目录内容的函数。要使用 readdir 遍历目录树,你需要递归地遍历每个目录并读取其内容。下面是一个简单的示例:

<?php
function traverseDirectoryTree($directory) {
    if (!is_dir($directory)) {
        return;
    }

    $dirHandle = opendir($directory);
    if (!$dirHandle) {
        return;
    }

    while (($file = readdir($dirHandle)) !== false) {
        if ($file === '.' || $file === '..') {
            continue;
        }

        $filePath = $directory . DIRECTORY_SEPARATOR . $file;
        if (is_dir($filePath)) {
            traverseDirectoryTree($filePath);
        } else {
            echo "File: " . $filePath . PHP_EOL;
        }
    }

    closedir($dirHandle);
}

$rootDirectory = '/path/to/your/directory';
traverseDirectoryTree($rootDirectory);
?>

这个示例中的 traverseDirectoryTree 函数接受一个目录路径作为参数。首先,它检查给定的路径是否是一个目录。如果不是,函数直接返回。接下来,使用 opendir 打开目录,并使用 readdir 读取目录中的每个文件和子目录。

对于每个文件和子目录,我们检查它是否是当前目录(.)或上级目录(..)。如果是,我们跳过它们。然后,我们构建文件的完整路径,并检查它是否是一个目录。如果是目录,我们递归地调用 traverseDirectoryTree 函数。如果不是目录,我们输出文件的路径。

最后,使用 closedir 关闭目录句柄。

请注意,这个示例仅用于演示目的,实际应用中可能需要根据需求进行调整。例如,你可以将文件路径添加到数组中,而不是直接输出它们,或者根据需要对文件进行筛选。

0
看了该问题的人还看了