php计算整个目录大小的方法


Posted in PHP onJune 01, 2015

本文实例讲述了php计算整个目录大小的方法。分享给大家供大家参考。具体实现方法如下:

/**
 * Calculate the full size of a directory
 *
 * @author   Jonas John
 * @version   0.2
 * @link    http://www.jonasjohn.de/snippets/php/dir-size.htm
 * @param    string  $DirectoryPath  Directory path
 */
function CalcDirectorySize($DirectoryPath) {
  // I reccomend using a normalize_path function here
  // to make sure $DirectoryPath contains an ending slash
  // (-> http://www.jonasjohn.de/snippets/php/normalize-path.htm)
  // To display a good looking size you can use a readable_filesize
  // function.
  // (-> http://www.jonasjohn.de/snippets/php/readable-filesize.htm)
  $Size = 0;
  $Dir = opendir($DirectoryPath);
  if (!$Dir)
    return -1;
  while (($File = readdir($Dir)) !== false) {
    // Skip file pointers
    if ($File[0] == '.') continue; 
    // Go recursive down, or add the file size
    if (is_dir($DirectoryPath . $File))      
      $Size += CalcDirectorySize($DirectoryPath . $File . DIRECTORY_SEPARATOR);
    else 
      $Size += filesize($DirectoryPath . $File);    
  }
  closedir($Dir);
  return $Size;
}
//使用范例:
$SizeInBytes = CalcDirectorySize('data/');

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
一个用php3编写的简单计数器
Oct 09 PHP
隐性调用php程序的方法
Mar 09 PHP
php 魔术函数使用说明
Feb 21 PHP
PHP的autoload机制的实现解析
Sep 15 PHP
PHP递归实现层级树状展开
Apr 01 PHP
微信自定义分享php代码分析
Nov 24 PHP
详解thinkphp5+swoole实现异步邮件群发(SMTP方式)
Oct 13 PHP
PHP生成二维码与识别二维码的方法详解【附源码下载】
Mar 07 PHP
php swoole多进程/多线程用法示例【基于php7nts版】
Aug 12 PHP
redis+php实现微博(二)发布与关注功能详解
Sep 23 PHP
tp5 实现列表数据根据状态排序
Oct 18 PHP
laravel 实现用户登录注销并限制功能
Oct 24 PHP
php获取系统变量方法小结
May 29 #PHP
typecho插件编写教程(六):调用接口
May 28 #PHP
PHP cURL初始化和执行方法入门级代码
May 28 #PHP
php支持中文字符串分割的函数
May 28 #PHP
typecho插件编写教程(五):核心代码
May 28 #PHP
php实现paypal 授权登录
May 28 #PHP
typecho插件编写教程(四):插件挂载
May 28 #PHP
You might like
四月新番又没了,《Re:从零开始的异世界生活》第二季延期至7月播出
2020/05/06 日漫
PHP中多线程的两个实现方法
2016/10/14 PHP
javascript奇异的arguments分析
2010/10/20 Javascript
js类型检查实现代码
2010/10/29 Javascript
IE6背景图片不缓存问题解决方案及图片使用策略多个方法小结
2012/05/14 Javascript
JS截取字符串常用方法整理及使用示例
2013/10/18 Javascript
js超时调用setTimeout和间歇调用setInterval实例分析
2015/01/28 Javascript
JavaScript闭包详解
2015/02/02 Javascript
JavaScript返回上一页的三种方法及区别介绍
2015/07/04 Javascript
jQuery使用ajax跨域获取数据的简单实例
2016/05/18 Javascript
JS实现隐藏同级元素后只显示JS文件内容的方法
2016/09/04 Javascript
JavaScript仿聊天室聊天记录
2016/12/27 Javascript
vue数据双向绑定的注意点
2017/06/23 Javascript
写给vue新手们的vue渲染页面教程
2017/09/01 Javascript
Vue.js 动态为img的src赋值方法
2018/03/14 Javascript
LayUI动态设置checkbox不显示的解决方法
2019/09/02 Javascript
JS猜数字游戏实例讲解
2020/06/30 Javascript
VUE项目实现主题切换的多种方法
2020/11/26 Vue.js
[02:44]DOTA2英雄基础教程 钢背兽
2013/12/19 DOTA
[05:06]DOTA2-DPC中国联赛 正赛 VG vs Magma选手采访
2021/03/11 DOTA
使用python删除nginx缓存文件示例(python文件操作)
2014/03/26 Python
Python单链表的简单实现方法
2014/09/23 Python
python通过shutil实现快速文件复制的方法
2015/03/14 Python
Diango + uwsgi + nginx项目部署的全过程(可外网访问)
2018/04/22 Python
详解Python Matplotlib解决绘图X轴值不按数组排序问题
2019/08/05 Python
python 内置函数汇总详解
2019/09/16 Python
Python不支持 i ++ 语法的原因解析
2020/07/22 Python
css3过渡_动力节点Java学院整理
2017/07/11 HTML / CSS
CSS3标注引用的出处和来源的方法
2020/02/25 HTML / CSS
团队精神演讲稿
2013/12/31 职场文书
企业管理培训感言
2014/01/27 职场文书
卖车协议书
2014/04/21 职场文书
2015年三万活动总结
2015/03/25 职场文书
2016大一新生军训心得体会
2016/01/11 职场文书
导游词之塘栖古镇
2019/12/04 职场文书
浅谈Redis存储数据类型及存取值方法
2021/05/08 Redis