当前位置: 首页> 最新文章列表> PHP文件夹信息计算:统计文件数、文件夹数及大小

PHP文件夹信息计算:统计文件数、文件夹数及大小

gitbox 2025-06-18

1. 计算指定文件夹的信息

在PHP中,我们可以使用文件系统函数来计算指定文件夹的信息,包括文件夹数、文件数和文件夹大小。通过递归方式,我们可以遍历文件夹中的所有文件和子文件夹,并统计相关数据。

1.1 递归遍历文件夹

我们需要编写一个递归函数,来遍历文件夹中的所有文件和子文件夹。此函数接收一个文件夹路径作为参数,并统计其中的文件夹数、文件数和文件夹大小。

以下是递归遍历文件夹的PHP代码:

function getFolderInfo($folderPath) {
    $folderCount = 0;  // 文件夹数
    $fileCount = 0;    // 文件数
    $folderSize = 0;   // 文件夹大小

foreach ($files as $file) {
    if ($file == '.' || $file == '..') {  // 忽略当前目录和上级目录
        continue;
    }

    $filePath = $folderPath . '/' . $file;  // 文件或子文件夹的完整路径

    if (is_dir($filePath)) {  // 如果是文件夹
        $folderCount++;  // 文件夹数加1
        $subFolderInfo = getFolderInfo($filePath);  // 递归获取子文件夹的信息
        $folderCount += $subFolderInfo['folderCount'];  // 累加子文件夹数
        $fileCount += $subFolderInfo['fileCount'];    // 累加文件数
        $folderSize += $subFolderInfo['folderSize'];  // 累加文件夹大小
    } else {  // 如果是文件
        $fileCount++;  // 文件数加1
        $folderSize += filesize($filePath);  // 文件夹大小加上文件大小
    }
}

return [
    'folderCount' => $folderCount,
    'fileCount' => $fileCount,
    'folderSize' => $folderSize
];

}

在代码中,我们首先初始化文件夹数、文件数和文件夹大小为零。然后使用`scandir`函数获取文件夹中的所有文件和子文件夹。接着,通过循环遍历每个文件和子文件夹,判断它们的类型,并执行相应的处理。

若是文件夹,递归调用`getFolderInfo`来获取子文件夹信息,并将子文件夹的统计数据加到当前文件夹的统计中。若是文件,则直接将其大小加到文件夹的总大小中。

1.2 统计指定文件夹的信息

为了统计指定文件夹的信息,我们可以调用`getFolderInfo`函数,并传入文件夹的路径。

$folderPath = '/path/to/folder';  // 指定文件夹的路径
$folderInfo = getFolderInfo($folderPath);  // 获取文件夹信息
$folderCount = $folderInfo['folderCount'];  // 文件夹数
$fileCount = $folderInfo['fileCount'];    // 文件数
$folderSize = $folderInfo['folderSize'];  // 文件夹大小

在这段代码中,首先指定文件夹路径,然后调用`getFolderInfo`函数来获取该文件夹的统计信息。最后,我们将结果存储在相应的变量中。

2. 示例

以下是一个示例,展示如何使用上述代码来计算指定文件夹的信息:

$folderPath = '/path/to/folder';  // 指定文件夹路径
$folderInfo = getFolderInfo($folderPath);  // 获取文件夹信息
$folderCount = $folderInfo['folderCount'];  // 文件夹数
$fileCount = $folderInfo['fileCount'];    // 文件数
$folderSize = $folderInfo['folderSize'];  // 文件夹大小
<p>echo "文件夹数:" . $folderCount . "\n";  // 输出文件夹数<br>
echo "文件数:" . $fileCount . "\n";      // 输出文件数<br>
echo "文件夹大小:" . $folderSize . " bytes\n";  // 输出文件夹总大小

假设要统计`/path/to/folder`文件夹的信息,执行代码后,将输出类似以下结果:

文件夹数:3
文件数:10
文件夹大小:123456789 bytes

该输出显示`/path/to/folder`文件夹包含3个子文件夹,10个文件,总占用空间为123456789字节。

3. 总结

通过递归方式和文件系统函数,PHP使得计算文件夹的详细信息变得非常简便。使用上述代码,我们可以准确地统计指定文件夹的文件数、文件夹数以及文件夹的总大小。这对于进行文件管理和优化磁盘空间使用非常有帮助。