當前位置: 首頁> 最新文章列表> 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使得計算文件夾的詳細信息變得非常簡便。使用上述代碼,我們可以準確地統計指定文件夾的文件數、文件夾數以及文件夾的總大小。這對於進行文件管理和優化磁盤空間使用非常有幫助。