php 目录类,php目录操作类

1. [文件]

Dir.class.php<?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;

};

}

}

相关标签:php

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值