您好,欢迎访问一九零五行业门户网

PHP获取文件夹或目录的大小

欢迎进入linux社区论坛,与200万技术人员互动交流 >>进入 前两天在一个php项目中需要获取指定文件夹的大小,因为文件夹可能有很多子文件夹及子文件夹构成,所以在网上找了一圈没找到合适的,有的是不能正确获取多层嵌套的文件夹,有的是代码量太多,效率低。
欢迎进入linux社区论坛,与200万技术人员互动交流 >>进入
前两天在一个php项目中需要获取指定文件夹的大小,因为文件夹可能有很多子文件夹及子文件夹构成,所以在网上找了一圈没找到合适的,有的是不能正确获取多层嵌套的文件夹,有的是代码量太多,效率低。最后自己琢磨写了一个方法,效率还不错,而且可以获取到任意多层嵌套的文件夹大小。
代码:
$filename){
if($filename!= && $filename!=.){
if(is_dir($dir./.$filename)){
$new_foldersize = foldersize($dir./.$filename);
$count_size = $count_size+ $new_foldersize;
}else if(is_file($dir./.$filename)){
$count_size = $count_size + filesize($dir./.$filename);
$count++;
}
}
}
return $count_size;
}
?>
调用:
上面getfoldersize这个函数返回的文件夹大小是以字节为单位的,为了更完善的实现功能,这里补充一个函数,将字节转换为kb,mb,gb,tb等单位。
转换函数:
= 0) && ($bytes
return $bytes . ' b';
} elseif (($bytes >= $kb) && ($bytes
return ceil($bytes / $kb) . ' kb';
} elseif (($bytes >= $mb) && ($bytes
return ceil($bytes / $mb) . ' mb';
} elseif (($bytes >= $gb) && ($bytes
return ceil($bytes / $gb) . ' gb';
} elseif ($bytes >= $tb) {
return ceil($bytes / $tb) . ' tb';
} else {
return $bytes . ' b';
}
}
?>
最终调用:
其它类似信息

推荐信息