-
-
- //统计文件夹的相关信息
- //统计目录数
- //格式化输出目录大小 单位:Bytes,KB,MB,GB
-
- function getFolderSize($path)
- {
- $totalsize = 0;
- $totalcount = 0;
- $dircount = 0;
- if ($handle = opendir ($path))
- {
- while (false !== ($file = readdir($handle)))
- {
- $nextpath = $path . '/' . $file;
- if ($file != '.' && $file != '..' && !is_link ($nextpath))
- {
- if (is_dir ($nextpath))
- {
- $dircount ;
- $result = getFolderSize($nextpath);
- $totalsize = $result['size'];
- $totalcount = $result['count'];
- $dircount = $result['dircount'];
- }
- elseif (is_file ($nextpath))
- {
- $totalsize = filesize ($nextpath);
- $totalcount ;
- }
- }
- }
- }
- closedir ($handle);
- $total['size'] = $totalsize;
- $total['count'] = $totalcount;
- $total['dircount'] = $dircount;
- return $total;
- }
//格式化输出信息
- function sizeFormat($size)
- {
- $sizeStr='';
- if($size<1024)
- {
- return $size." bytes";
- }
- else if($size<(1024*1024))
- {
- $size=round($size/1024,1);
- return $size." KB";
- }
- else if($size<(1024*1024*1024))
- {
- $size=round($size/(1024*1024),1);
- return $size." MB";
- } bbs.it-home.org
- else
- {
- $size=round($size/(1024*1024*1024),1);
- return $size." GB";
- }
-
- }
-
- $path="/var/www";
- $ar=getFolderSize($path);
-
- echo "
您查看的路径 : $path";
- echo "目录大小 : ".sizeFormat($ar['size'])."
";
- echo "文件数 : ".$ar['count']."
";
- echo "目录数 : ".$ar['dircount']."
";
//输出
- //print_r($ar);
- ?>
-
复制代码
例2,php获取文件夹大小的函数
-
- // 获取文件夹大小
- function getDirSize($dir)
- {
- $handle = opendir($dir);
- while (false!==($FolderOrFile = readdir($handle)))
- {
- if($FolderOrFile != "." && $FolderOrFile != "..")
- {
- if(is_dir("$dir/$FolderOrFile"))
- {
- $sizeResult = getDirSize("$dir/$FolderOrFile");
- }
- else
- {
- $sizeResult = filesize("$dir/$FolderOrFile");
- }
- }
- }
- closedir($handle);
- return $sizeResult;
- }
- // 单位自动转换函数
- function getRealSize($size)
- {
- $kb = 1024; // Kilobyte
- $mb = 1024 * $kb; // Megabyte
- $gb = 1024 * $mb; // Gigabyte
- $tb = 1024 * $gb; // Terabyte
-
- if($size < $kb)
- {
- return $size." B";
- }
- else if($size < $mb)
- {
- return round($size/$kb,2)." KB";
- }
- else if($size < $gb)
- {
- return round($size/$mb,2)." MB";
- }
- else if($size < $tb)
- {
- return round($size/$gb,2)." GB";
- }
- else
- {
- return round($size/$tb,2)." TB";
- }
- }
- echo getRealSize(getDirSize('目录路径'));
- ?>
复制代码
|