如何用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.'目录';
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你可以用递归计算文件夹里面的文件大小然后加起来。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询