作者:1輩孓莣8鋽 | 来源:互联网 | 2018-03-23 04:31
1. [文件]
Dir.class.php
_dir=$dir;
}
/**
* 计算目录大小
* @param string $dir 目录
* @return number 字节
*/
public function dirSize($dir=null){
if ($dir==null) {
$dir=$this->_dir;
}
if (!is_string($dir)) {
throw new Exception('目录名必须为string类型!');
}
$size=0;
$items=scandir($dir);
foreach ($items as $item) {
if (is_file($dir.'/'.$item)) {
$size=$size+filesize($dir.'/'.$item);
}elseif (is_dir($dir.'/'.$item)&&'.'!=$item&&'..'!=$item){
$size=$size+$this->dirSize($dir.'/'.$item);
}
}
return $size;
}
/**
* 判断文件或目录可读
* @author 李俊
* @param string $dir 目录名
* @return bool
*/
function readable($dir=null) {
if ($dir==null) {
$dir=$this->_dir;
}
if (!is_string($dir)) {
throw new Exception('目录名必须为string类型!');
}
if (($frst=file_get_contents($dir))&&is_file($dir)) {
return true;//是文件,并且可读
}else {//是目录
if (is_dir($dir)&&scandir($dir)) {
return true;//目录可读
}else {
return false;
}
}
}
/**
* 判断文件或目录是否可写
* @author 李俊
* @param string $dir 目录名
* @return bool
*/
function writeable($dir=null) {
if ($dir==null) {
$dir=$this->_dir;
}
if (!is_string($dir)) {
throw new Exception('目录名必须为string类型!');
}
if (is_file($dir)) {//对文件的判断
return is_writeable($dir);
}elseif (is_dir($dir)) {
//开始写入测试;
$file='_______'.time().rand().'_______';
$file=$dir.'/'.$file;
if (file_put_contents($file, '//')) {
unlink($file);//删除测试文件
return true;
}else {
return false;
}
}else {
return false;
};
}
}