PHP获取文件大小,磁盘大小的方法

  •   
  • 5769
  • PHP
  • 3
  • super_dodo
  • 2014/01/16

使用PHP对相应的文件或者磁盘进行大小的计算,以及真实直观的单位的换算方法,文件的权限,文件的类型等,了解文件的一些相关属性.

date_default_timezone_set('Asia/Shanghai');
header("Content-Type:text/html;Charset='utf-8'");

$filename = 'index00.php';
if (file_exists($filename)) {
	echo $filename." 创建的时间是 " . date("Y-m-d H:i:s.", filectime($filename)).'<hr>';
	echo $filename." 最后修改的时间是 " . date("Y-m-d H:i:s.", fileatime($filename)).'<hr>';
}
echo substr(sprintf('%o', fileperms($filename)), -4).'<hr>';    //文件权限
echo filetype('../demo').'<hr>';                                //文件类型
echo $cSize = disk_free_space('C:/').'<hr>';                    //磁盘大小 C盘

获取文件夹大小

function getDirSize($dir){ 
	$handle = opendir($dir);
	while (false!==($FolderOrFile = readdir($handle))){ 
		if($FolderOrFile != "." && $FolderOrFile != ".."){ 
			$sizeResult = 0;
			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($cSize);
echo '<hr>';
echo getRealSize(getDirSize('./bootstrap'));

不知死而死,是为无知。知死而死,是为无畏。