如何用PHP获取文件夹的大小(包括子文件夹)?
5个回答
展开全部
这个函数应该能满足你的要求
function getDirSize($dir)
{
$size = 0;
$dirs = [$dir];
while(@$dir=array_shift($dirs)){
$fd = opendir($dir);
while(@$file=readdir($fd)){
if($file=='.' && $file=='..'){
continue;
铅大做 }
$file = $dir.DIRECTORY_SEPARATOR.$file;
仿圆 if(is_dir($file)){
array_push($dirs, $file);
}else{
$size 槐衡+= filesize($file);
}
}
closedir($fd);
}
return $size;
}
展开全部
如果支持系困高统函数的话,可以这么瞎胡干:
$dir = __DIR__;
echo exec("磨尺拦du -sh {$dir}");
$dir = __DIR__;
echo exec("磨尺拦du -sh {$dir}");
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
function holdersize($hold,$holdersize=0){
if (@$handle = opendir($hold)) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
if(is_dir($hold.'/'.$file)) holdersize($hold.'/磨侍'.$file,$holdersize);
$holdersize=$holdersize+filesize($hold.'/'.$file);
}
}return $holdersize;
}else return '无法获取'.$hold.'侍脊目录'瞎谈吵;
}
if (@$handle = opendir($hold)) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
if(is_dir($hold.'/'.$file)) holdersize($hold.'/磨侍'.$file,$holdersize);
$holdersize=$holdersize+filesize($hold.'/'.$file);
}
}return $holdersize;
}else return '无法获取'.$hold.'侍脊目录'瞎谈吵;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你可以用递归计算文件夹里面的文件大小然后加起来。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询