PHP文件操作 之统计目录大小

本文展示了一个PHP函数,用于统计指定目录内的所有文件和子目录的大小,并以MB为单位输出结果。
<?php
//定义一个函数 统计目录大小函数
function dirSize($dirName) {
    
    //判断目录是否存在
    if (!file_exists($dirName)) {
        die('目录不存在!');
    }
    
    //判断是否是目录
    if (!is_dir($dirName)) {
        die('您所遍历的不是目录!');
    }
    
    //打开目录
    $d = opendir($dirName);
    
    //判断打开目录是否成功
    if (!$d) {
        die('打开目录失败!');
    }
    
    //读取目录
    while ($f = readdir($d)) {
        
        //将两个特殊目录'.'和'..'排除掉
        if ($f != '.' && $f != '..') {
            
            //拼装目录的子文件地址
            $filename = $dirName . '/' . $f;
            
            //判断是否是目录
            if (is_dir($filename)) {
                
                //递归调用自己来统计子目录的大小
                $sum += dirSize($filename);
            }

            //判断是否是文件
            if (is_file($filename)) {
                $sum += filesize($filename);
            }
        }
    }
    
    //关闭目录
    closedir($d);
    
    //返回目录大小变量
    return $sum;
}

//调用函数
echo number_format(dirSize('../../../phpMyAdmin')/1024/1024, 2) . 'MB';

 

转载于:https://www.cnblogs.com/Zell-Dinch/p/4036155.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值