zoukankan      html  css  js  c++  java
  • PHP获取文件夹内所有文件包括子目录文件的名称或路径

    /*
    *  new getFile($_dir[,$_emptyDir,$_fileType]);
    * @parma $_dir 是目录名称
    * @parma $_emptyDir 是否获取空文件夹,选填,默认不获取,true则获取空文件夹
    * @parma $_fileType 获取文件名称的类型,选填,默认获取只文件名称,true则获取带有路径的文件名称
    **/
    class getFiles {
        private $_dir;
        private $_emptyDir;
        private $_fileType;
        public $_files;
         
        public function __construct($_dir,$_emptyDir = false,$_fileType = false) {
            $this->_dir = $_dir;
            $this->_emptyDir = $_emptyDir;
            $this->_fileType = $_fileType;
            if ($this->_emptyDir) {
                $this->getFileEmpty($this->_dir,$this->_files);
            } else {
                $this->getFile($this->_dir,$this->_files);
            }
        }
        //读取文件夹所有文件不包括空文件夹
        private function getFile($_dir,&$_arr) {
            if (!!$_dirs = opendir($_dir)) {
                while (($_file=readdir($_dirs)) != false) {
                    if ($_file == '.' || $_file == '..') continue;
                    $_files = $_dir .'/'. $_file;
                    if (is_dir($_files)) {
                        $this->getFile($_files,$_arr);
                    } else {
                        if ($this->_fileType) {
                            $_arr[] = $_files;
                        } else {
                            $_arr[] = $_file;
                        }
                    }
                }
            }
            closedir($_dirs);
        }
        //读取文件夹所有文件包括空文件夹
        private function getFileEmpty($_dir,&$_arr) {
            if (!!$_dirs = opendir($_dir)) {
                while (($_file=readdir($_dirs)) != false) {
                    if ($_file == '.' || $_file == '..') continue;
                    $_files = $_dir .'/'. $_file;
                    if (is_dir($_files) && $this->isEmpty($_files)) {
                        $this->getFileEmpty($_files,$_arr);
                    } else {
                        if ($this->_fileType) {
                            $_arr[] = $_files;
                        } else {
                            $_arr[] = $_file;
                        }
                    }
                }
            }
            closedir($_dirs);
        }
        //判断文件夹是否为空
        private function isEmpty($_dir) {
            if (!!$_dirs = opendir($_dir)) {
                while (($_file=readdir($_dirs)) != false) {
                    if($_file != '.' && $_file != '..') {
                        closedir($_dirs);
                        return true;
                        break;
                    }
                }
                closedir($_dirs);
                return false;
            }
        }
    }

    转载请注明出处:http://www.ly89.cn/detailB/36.html

  • 相关阅读:
    Spring IoC 容器和 AOP
    MySQL 锁与事务控制
    MySQL 存储引擎的选择
    如何理解MySQL 索引最左前缀原则
    MySQL 索引
    Java 线程池
    Java多线程 ReentrantLock、Condition 实现生产者、消费者协作模式
    Java多线程并发中 CAS 的使用与理解
    Java多线程中协作机制
    Mysql-SQL生命周期-show profile
  • 原文地址:https://www.cnblogs.com/ly89cn/p/4825272.html
Copyright © 2011-2022 走看看