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

<?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';

 

posted @ 2014-10-19 22:51  Zell~Dincht  阅读(162)  评论(0编辑  收藏  举报