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

 

你可能感兴趣的:(文件操作)