删除目录下指定类型或格式的文件(多层级删除)

提示:谨慎操作,因为删除的文件不会进入回收站!

header("Content-type: text/html;charset=utf-8");
error_reporting(E_ALL ^E_NOTICE^E_WARNING);
//从文件夹里删除指定后缀的文件
class  delFileByExt{
    private $delfile_arr=array('xls');//要删除的文件格式
    static $num=0;
    static $del_num=0;
    static $delog=array();
    public $dir;
    function __construct($dir)
    {
        $this->dir=$dir;
    }
    public function read_all($dir){
        if(!is_dir($dir)){
            return false;
        }
        $handle = opendir($dir);
        if($handle){
            while(($fl = readdir($handle)) !== false){
                $temp = $dir.DIRECTORY_SEPARATOR.$fl;
                //如果不加  $fl!='.' && $fl != '..'  则会造成把$dir的父级目录也读取出来
                if(is_dir($temp) && $fl!='.' && $fl != '..'){
                    echo '目录:'.$temp.'<br>';
                    $this->read_all($temp);
                }else{
                    if($fl!='.' && $fl != '..'){
                        if($temp){
                            self::$num++;
                            $arr_path=explode('.',$temp);
                            $ext=end($arr_path);
                            echo '---文件:'.$temp.'<br>';
                            if(in_array($ext,$this->delfile_arr)){
                                $return_state=unlink($temp);
                                if($return_state){
                                    echo '<b style="color:red;">---已删除:'.$temp.'</b><br>';
                                    self::$del_num++;
                                    if(empty(self::$delog[$ext])){
                                        self::$delog[$ext]=1;
                                    }else{
                                        self::$delog[$ext]+=1;
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    //统计文件总数
    public function countNum(){
        echo '该文件夹:'.$this->dir.'统计如下:';
        echo '--一共有'.self::$num.'个文件!<br>';
        echo '----其中有'.self::$del_num.'个后缀为'.join(',',$this->delfile_arr).'的文件已经被删除!<br>';
        foreach (self::$delog as $k=>$v){
            echo '------包含有'.$v.'个文件 '.$k.' 格式的文件!<br>';
        }
    }
}
//使用
$obj=new delFileByExt('D:\PROJECT\jysx_single\public\file\upload\2015-07\15');
$obj->read_all($obj->dir);
$obj->countNum();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值