一个统计目录文件大小的php函数

早上刚到公司,头告诉我,抓紧写一个小函数,用来统计指定目录中文件大小,我了个去,动手吧,还好有点小基础,一会就完工了,哈哈。代码在下面咯。

  1. <?
  2. /**
  3. 统计目录文件大小的函数
  4. @author xfcode
  5. @link http://www.jbxue.com
  6. */
  7. function dirsize($dir)
  8. {
  9.    @$dh = opendir($dir);
  10.   $size = 0;
  11.   while ($file = @readdir($dh))
  12.   {
  13.    if ($file != "." and $file != "..")
  14.    {
  15.     $path = $dir."/".$file;
  16.      if (is_dir($path))
  17.      {
  18.        $size += dirsize($path);
  19.      }
  20.      elseif (is_file($path))
  21.      {
  22.       $size += filesize($path);
  23.      }
  24.    }
  25.   }
  26.  @closedir($dh);
  27.  return $size;
  28. }
  29. //function end
  30. //eg:
  31. $dir_path = "./my_files";
  32. $dir_size = dirsize($dir_path);
  33. $dir_size = $dir_size/1024/1024;
  34. echo $dir_size."MB";
  35. ?>

这个函数可以递归遍历目录中的所有文件,并计算以MB为单位的文件总大小。 
新手出招,大佬们见笑了。

时间: 2024-10-12 09:27:33

一个统计目录文件大小的php函数的相关文章

遍历目录,统计目录的大小

<?php header("Content-type:text/html;charset=utf-8"); function dirSize($directory){ //创建一个统计目录大小的函数 $dir_size=0;//累计目录的大小 if($dir_handle=opendir($directory)){ //打开目录.返回的是一个句柄 while($result=readdir($dir_handle)){//遍历目录的所有文件,参数是句柄.返回的是当前位置的文件名

计算一个目录文件大小方法

<?php $dirfile='../hnb'; /** *计算一个目录文件大小方法 *$dirfile:传入文件目录名 **/ function dirSize($dirfile) { $dir_size=0; if($handle[email protected]opendir($dirfile)) { while($filename=readdir($handle)) { if($filename!='.' && $filename!='..') { $subfile=$dir

统计文件夹大小的函数

#统计文件夹大小的函数 import os #导入os模块 def getdirsize(dirpath): #定义一个函数 #设置一个用于累加大小变量 total = 0 #获取文件夹中所有文件和文件夹 allnames = os.listdir(dirpath) #遍历所有文件和文件夹,将他们的大小累加起来 /etc/acpi/powerbtn.sh for i in allnames: #遍历同时组合完整路径 fullpath = os.path.join(dirpath,i) #判断是文

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

<?php //定义一个函数 统计目录大小函数 function dirSize($dirName) { //判断目录是否存在 if (!file_exists($dirName)) { die('目录不存在!'); } //判断是否是目录 if (!is_dir($dirName)) { die('您所遍历的不是目录!'); } //打开目录 $d = opendir($dirName); //判断打开目录是否成功 if (!$d) { die('打开目录失败!'); } //读取目录 whi

linux网络编程之面试题----------统计目录下所有目录和文件个数

题目如下: 实现linux下tree的单一功能[只打印目录个数和文件个数(不包含隐藏文件)] 首选我们介绍几个相关的linux 系统API 函数名 函数描述 函数声明 opendir 打开一个目录,成功返回一个DIR*类型指针,失败返回NULL DIR* opendir(const char* name) readdir 读取打开的目录下的子成员,成功返回结构体指针,否则返回NULL struct dirent* readdir(DIR* dir) closedir 关闭已打开的目录.成功返回0

一个统计自己代码行数的脚本

最近心血来潮,想看看自己平时写的乱七八糟的代码都有多少行了,就写了这个脚本.因为我的代码都写在了一个总目录里面,所以统计起来还算比较方便. 统计脚本是用shell写的,支持4个参数,-[qQhd],其中 h :为帮助参数,显示如下的帮助信息 $ cntline.sh -h Usage : cntline.sh -[qQhd] -q : not show dir -Q : not show file name -h : show this help message -d : only show d

如何统计目录下各种文件的数目

要想统计一个目录中的普通文件.目录文件以及其他文件的个数,就要事先知道这个文件夹中有哪些文件.然后,通过就可以判断这些文件哪些是普通文件.目录文件还是其他什么文件类型了.其实要想知道这个文件夹中有哪些文件,通过ls命令就可以知道了. 然后,在shell脚本中通过for循环得以实现.关键就在于,如果得到该文件夹中全部文件的文件名,这个时候就可以使用$(……)来实现.具体代码: #! /bin/bash let "dir_number=0" let "file_number=0&

一个统计代码行数的简单方法

安装Git, 到项目目录下右击->Git Bash, 输入命令: find . -name "*.cs" | xargs wc -l 效果如下, 还是挺简便的. 一个统计代码行数的简单方法,布布扣,bubuko.com

PHP遍历目录返回统计目录大小实例

分享一个 PHP遍历目录并返回统计目录大小的方法.代码: <?php $dirname = "test1"; //mkdir($dirname); //遍历一层目录 function listdir($dirname) { $ds = opendir($dirname); while($file = readdir($ds)) { $path = $dirname.'/'.$file; if(is_dir($file)) { echo "DIR:".$file