使用php遞迴計算目錄大小

2021-09-07 00:10:37 字數 540 閱讀 8652

統計乙個目錄大小,因為不知道目錄中子目錄的深度,所以for迴圈很難實現,但是用遞迴呼叫很容易實現,只要統計出乙個目錄中所有檔案的大小,那麼每一次呼叫就可以了,隨便建了個目錄,建立一些檔案,方法**如下:

1

function dirsize($dirname)9

if(is_dir($dirname.'/'.$item

))15}16

}17closedir($handle

);18

return

$sum;19

}20$filename='ssh';

21$arr=dirsize($filename

);22

echo ($arr/1024).'kb';

這樣就可以統計目錄大小了,定義儲存目錄大小變數的時候要定義靜態的變數或者全域性變數,整個程式執行過程中一直存在,防止每次遞迴置零

注意目錄'.'和'..'的處理,如果使用linux那就再熟悉不過了

重點部分就幾句**,判斷是檔案還是目錄,是檔案進行累加計算,否則遞迴呼叫。

3 3 1 遞迴計算

3.3.1 遞迴計算 遞迴函式最常見的示例是計算乙個數的階乘。如果你不熟悉,這裡有乙個簡單的定義 乙個非負數 n 的階乘,當 n 等於 1 或 0 時,等於1 對於更大的 n,等於 n 1 的階乘乘以 n。這個函式的實現,基本上有兩種方式。在 c 中,可以使用 for 迴圈,數字在 2 到 n 之間...

33 遞迴計算累加和

一.問題 給定乙個數 n 用遞迴的手法求出從 1 到 n 的累加和。1.例項分析 假設傳入引數 n 5。方法一 高斯公式 1 int gauss sum int n 利用公式,一次即可算出答案,時間複雜度為 o 1 方法二 迴圈計算 1 int normal sum int n 6 7return ...

C語言 使用迴圈和遞迴計算階乘

使用迴圈和遞迴計算階乘 使用迴圈和遞迴計算階乘 include double fact int num 函式宣告,階乘函式,用於迴圈時呼叫 double ct int num 函式宣告,階乘函式,用於遞迴時呼叫 int main void else printf 請輸入乙個整數 輸入q退出 prin...