Home > php教程 > php手册 > body text

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

WBOY
Release: 2016-06-06 19:46:32
Original
3720 people have browsed it

欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入 前两天在一个PHP项目中需要获取指定文件夹的大小,因为文件夹可能有很多子文件夹及子文件夹构成,所以在网上找了一圈没找到合适的,有的是不能正确获取多层嵌套的文件夹,有的是代码量太多,效率低。

欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入

  前两天在一个PHP项目中需要获取指定文件夹的大小,因为文件夹可能有很多子文件夹及子文件夹构成,所以在网上找了一圈没找到合适的,有的是不能正确获取多层嵌套的文件夹,有的是代码量太多,效率低。最后自己琢磨写了一个方法,效率还不错,而且可以获取到任意多层嵌套的文件夹大小。

  代码:

  

  function getFolderSize($dir){

  $count_size = 0;

  $count = 0;

  $dir_array = scandir($dir);

  foreach($dir_array as $key=>$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;

  }

  ?>

  调用:

  

  $folder_name = "textFolder";

  echo getFolderSize($folder_name);

  ?>

  上面getFolderSize这个函数返回的文件夹大小是以字节为单位的,为了更完善的实现功能,这里补充一个函数,将字节转换为KB,MB,GB,TB等单位。

  转换函数:

  

  function sizeFormat($bytes){

  $kb = 1024;

  $mb = $kb * 1024;

  $gb = $mb * 1024;

  $tb = $gb * 1024;

  if (($bytes >= 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';

  }

  }

  ?>

  最终调用:

  

  $folder_name = "textFolder";

  echo sizeFormat(getFolderSize($folder_name));

  ?>

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

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!