php使用递归计算文件夹大小
方法很简单,这里就不多废话了,直接奉上代码:
protectedfunctiondir_size($dir){ $dh=opendir($dir); //打开目录,返回一个目录流 $size=0; //初始大小为0 while(false!==($file=@readdir($dh))){ //循环读取目录下的文件 if($file!='.'and$file!='..'){ $path=$dir.'/'.$file; //设置目录,用于含有子目录的情况 if(is_dir($path)){ $size+=$this->dir_size($path); //递归调用,计算目录大小 }elseif(is_file($path)){ $size+=filesize($path); //计算文件大小 } } } closedir($dh); //关闭目录流 return$size; //返回大小 }