• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

使用php递归计算目录大小

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

  统计一个目录大小,因为不知道目录中子目录的深度,所以for循环很难实现,但是用递归调用很容易实现,只要统计出一个目录中所有文件的大小,那么每一次调用就可以了,随便建了个目录,建立一些文件,方法代码如下:

 1 function dirsize($dirname){
 2     static $sum=0;    //静态变量,防止每次递归置零
 3     $handle=opendir($dirname);
 4     while(($item=readdir($handle))!==false){
 5         if($item!='.'&&$item!='..'){
 6             if(is_file($dirname.'/'.$item)){
 7                 $sum+=filesize($dirname.'/'.$item);
 8             }
 9             if(is_dir($dirname.'/'.$item)){
10                 //递归操作
11                 $func=__FUNCTION__;
12                 $func($dirname.'/'.$item);
13                 //dirsize($dirname.'/'.$item);
14             }
15         }
16     }
17     closedir($handle);
18     return $sum;
19 }
20 $filename='ssh';
21 $arr=dirsize($filename);
22 echo ($arr/1024).'KB';

这样就可以统计目录大小了,定义保存目录大小变量的时候要定义静态的变量或者全局变量,整个程序运行过程中一直存在,防止每次递归置零

注意目录'.'和'..'的处理,如果使用Linux那就再熟悉不过了

重点部分就几句代码,判断是文件还是目录,是文件进行累加计算,否则递归调用。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
php遍历数组发布时间:2022-07-10
下一篇:
PHP求职宝典系列——PHP Web 编程篇发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap