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

时间: 2024-10-13 12:58:05

PHP获取文件夹内所有文件包括子目录文件的名称或路径的相关文章

File类——renameTo()将文件夹内的所有指定类型文件 移动到另一个文件夹内

* 由于   张孝祥-7K月薪面试题破解之一_交通灯管理系统视频教程 文件夹下 的视频文件都存放在每个子文件夹中 * 需求:将所有视频文件全部移动到  张孝祥-7K月薪面试题破解之一_交通灯管理系统视频教程文件夹下  原来存放视频的子文件夹删除 public class moveFiles { public static void main(String[] args) { // TODO Auto-generated method stub File f = new File("D:\\Bai

第5个程序,Java 去掉版权信息! 递归扫描文件夹,并且把整个文件夹内以html结尾的文件里的文字替换为自己想要的文字。

这是我的第5个程序 虽然这五个程序都是非常小的程序,但是写完后很开心...满满都是最最最基础的知识点,可是把这些东西组合起来简直日了狗了.竟然可以这样!竟然会那样!一路改错,改到差点怀疑人生.尤其是递归里面的两个嵌套的if 那逻辑!日了整个地球的狗.起先是用&连起来的,卡了半年,胡子都白了...后来发现,原来被别的地方锁死了!!!所以只能if 里面套一个if...看上去并没有什么特别的一个小程序,自己纯原创写的时候,150ms的延迟,1500的暴击,满地图都卡.死了...让我平复一下激动兴奋的心

C#搜索指定文件夹内的符合要求的文件

下面的列子是文件的模糊查找, 具体功能是:选定文件夹,搜索所有文件命中包含“_bui”字样的shp图层(后缀为.shp)并将信息显示在ListView中.实际应用中可随便修改. 这里采用递归方法进行深度搜索,浅层的搜索就不再记录. List<FiledInfo>Listed=new List<FileInfo>();//存储符合要求的文件的FiledInfo string hz="shp"//文件后缀 private int k=0; public List&l

Java实现将指定文件夹内的指定类型的文件归类

这两天在学Java IO流,正好让我产生了将自己的电子书归类的打算,说做就做,Why not?看着自己所学所用能解决生活中的实际问题,是不是很有成就感,那是必须的! package DepthSearch; import java.util.*; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.FilenameFilter; import ja

iOS imageName方法获取Folder文件夹(蓝色文件夹)内图片

Xcode创建的iOS项目内存在两种文件夹:Group(黄色, 伪文件夹) 和Folder(蓝色, 真文件夹): Group: Folder: Images.xcassets或Group文件夹内的PNG图片可通过imageNamed方法直接加载: [UIImage imageNamed:@"photo"]; Folder文件夹内的PNG图片通过imageNamed方法加载必须拼接文件夹路径, 否则图片无法显示: [UIImage imageNamed:@"Folder/ima

监听Documents文件夹内文件发生改变

// 当Documents内文件发生改变时,启动计时器,每秒计算一次大小,当大小不发生改变时说明传输完毕,就开始刷新. @property (nonatomic, strong) NSTimer *timer; // 原Documents内文件大小 @property (nonatomic, assign) NSInteger filesSize; // Documents内文件改变后的大小 @property (nonatomic, assign) NSInteger foundSize; -

简单的批量提取文件夹内文件名的经典方法

一个文件夹下面有很多文件,如果要批量提取文件夹内所有文件名,知道如何操作吗? 比如,笔者电脑里面E盘文件夹下面有一个“4.2函数经典再现”的文件夹,想将这个文件夹下面的所有文件名批量提取到一个记事本文件里面. 如果你也想批量提取文件名(批量获取一个文件夹内所有文件的文件名),可以按下面的步骤进行. 第一步,新建一个txt格式的记事本文件. 第二步,在记事本文件中输入:DIR *.*  /B >LIST.TXT 第三步,将此记事本文件后辍名,由txt改为bat.会弹出重命名对话框,单击“是”. 第

如何让文件夹内所有文件名显示在一个Excel文件

如何让文件夹内所有文件名显示在一个Excel文件 我们如何才能做到,让某个文件夹内的所有文件的名称,自动生成一个Excel文件或TXT记事本文件: 意思就是说,文件夹内的所有的文件的名称,自动显示在Excel单元格中或记事本里面. 要想实现这样的功能,非常简单,仅仅使用一个非常简单的DOS命令,就实现了! 方法/步骤 一.所需DOS命令 dir [drive:][path] /b > [drive:][path]filename 二.应用实例 如下图,在D盘中,有一个名称为“TQIPC”的文件夹

PHP复制文件夹及文件夹内的文件

//1.取被复制的文件夹的名字://2.写出新的文件夹的名字://3.调用此函数,将旧.新文件夹名字作为参数传递://4.如需复制文件夹内的文件,第三个参数传1,否则传0: public function xCopy($source, $destination, $child = 1){//用法: // xCopy("feiy","feiy2",1):拷贝feiy下的文件到 feiy2,包括子目录 // xCopy("feiy","fe

【Java】利用文件输入输出流完成把一个文件夹内的所有文件拷贝的另一的文件夹的操作

一.基本目标 使用Java完成如下的操作: 把一个文件夹内的所有文件拷贝的另一的文件夹,例如,在F盘中有a与b两个文件夹: f:/a里面有一堆文件,运行Java程序之后就会全部复制到f:/b,并且完成重命名,在所有文件之前加rename_的前缀,如果里面有文件夹,则文件夹不重命名,里面的文件进行重命名,同样在所有文件之前加rename_的前缀: 二.制作过程 1.首先主函数非常简单,就是调用了上面FileTest类中的copyFolder函数 public class FileCopy { pu