当前位置:首页php > 正文

php递归获取当前目录下的二级目录数和文件数

作者:野牛程序员:2024-07-02 11:30:24php阅读 2418
php递归获取当前目录下的二级目录数和文件数

在PHP中,可以使用递归函数来获取当前目录下的二级目录数和文件数。以下是一个示例代码:

<?php
function getDirectoryAndFileCount($dir) {
    $directoryCount = 0;
    $fileCount = 0;

    // 打开目录
    if ($handle = opendir($dir)) {
        // 遍历目录中的文件和文件夹
        while (false !== ($entry = readdir($handle))) {
            if ($entry != "." && $entry != "..") {
                $path = $dir . DIRECTORY_SEPARATOR . $entry;
                // 判断是否为目录
                if (is_dir($path)) {
                    $directoryCount++;
                    // 递归获取子目录中的文件和目录数
                    list($subDirCount, $subFileCount) = getDirectoryAndFileCount($path);
                    $directoryCount += $subDirCount;
                    $fileCount += $subFileCount;
                } else {
                    $fileCount++;
                }
            }
        }
        // 关闭目录
        closedir($handle);
    }

    return [$directoryCount, $fileCount];
}

// 获取当前目录下的二级目录和文件数
$currentDir = '.';
list($directoryCount, $fileCount) = getDirectoryAndFileCount($currentDir);

// 输出结果
echo "目录数: $directoryCount<br>";
echo "文件数: $fileCount<br>";
?>

代码说明:

  1. getDirectoryAndFileCount 函数接受一个参数 $dir,表示要遍历的目录路径。

  2. 初始化 $directoryCount$fileCount 为0,用于记录目录和文件的数量。

  3. 使用 opendir 函数打开目录。

  4. 使用 readdir 函数遍历目录中的文件和文件夹。

  5. 使用 is_dir 函数判断是否为目录,如果是,则递归调用 getDirectoryAndFileCount 函数获取子目录中的文件和目录数,并将结果累加。

  6. 如果是文件,则直接增加 $fileCount

  7. 使用 closedir 函数关闭目录。

  8. 最后返回目录数和文件数的数组。

  9. 调用 getDirectoryAndFileCount 函数并传入当前目录 '.',获取二级目录和文件数。

  10. 输出结果。

运行上述代码,将显示当前目录及其子目录中的所有目录数和文件数。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
  • php
  • 最新推荐

    热门点击