博客列表 >如何统计目录总大小

如何统计目录总大小

梁凯达的博客
梁凯达的博客原创
2018年12月28日 21:53:07895浏览

实例

<?php
	//统计总目录大小
	//echo filesize('./xxoo');
	//filesize 用于获取文件大小  但是不能获取文件目录的大小

	//如何统计目录大小
	//1.打开目录
	//2.边路目录的文件得到文件名
	//3.得到文件大小,将文件大小累加在一起得到目录大小
	//4.关闭目录

	$path = '../1225lkd/';
	$total = 0;
	$handle = opendir('../1225lkd');
	while($filename = readdir($handle)){
		//路径拼接
		$path = '../1225lkd/'.$filename;
		if($filename == '.'||$filename == '..'){
			continue;
		}
		$total += filesize($path);
	}
	echo $total;
	closedir($handle);

运行实例 »

点击 "运行实例" 按钮查看在线实例

 

实例

<?php
	//echo filesize('./xxoo');
	//filesize 用于获取文件大小  但是获取目录大小
	//统计目录大小
	//1.打开目录
	//2.遍历目录中的文件得到文件名
	//3.返回得到目录的大小
	//4.关闭目录


	function dirSize($path){
		//1.打开xxoo目录
		$handle = opendir($path);
		//var_dump($handle);
		//定义总大小
		$total = 0;
		//2遍历目录中的文件名
		while($filename = readdir($handle)){
			//2.1排除两个特殊目录
			if($filename == '.' || $filename == '..'){
				continue;
			}
			//拼接一个完成的路径
			$filepath = $path.'/'.$filename;
			//2.2统计文件大小进行累加
			//2.3判断是否为文件
			if(is_file($filepath)){
				$total += filesize($filepath);
			}
			//2.4判断是否为目录,如果是目录则进行操作
			if(is_dir($filepath)){
				$total += dirSize($filepath);
			}
		}
		return $total;
		closedir($handle);
	}
	echo dirSize('../1225lkd/');

运行实例 »

点击 "运行实例" 按钮查看在线实例

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议