目录操作类
span style=color:#323232;font-family:Century Gothic, 微软雅黑, 幼圆, Arial, Verdana;font-size:16px;line-height:32px;background-color:#FFFFFF;可以实现目录/span b占用空间大小统计/b span style=color:#323232;font-family:Centu
可以实现目录
占用空间大小统计
,
目录[文件]可读判断
,
目录[文件]可写判断
<?php
class Dir{
private $_dir;
/**
* 目录类
* @author 李俊[duguying2008@gmail.com]
* @param string $dir 目录
*/
function __construct($dir) {
$this->_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;
};
}
}
精彩图集
精彩文章






