遍历目录的正确方法

/**
     * 遍历目录
     * @staticvar int $depth
     * @staticvar array $path
     * @param type $dir
     * @param type $clear 是否销毁静态变量
     * @return string|boolean
     */
    public function _scan($dir, $clear = false) {
        static $depth = 0;
        static $path = array();
        // 无限遍历
//        if ($depth >= 10000) {
//            return false;
//        }
        if($clear) {
            $path = null;
            static $path = array();
        }
        $dirArr = scandir($dir);
        foreach ($dirArr as $v) {

            if (substr($v, 0, 1) != ‘.‘) {//去掉隐藏目录或文件
                $dirname = $dir . DS . $v;  //子文件夹的目录地址
                if (is_dir($dirname)) {
                    $depth++;
                    $this->_scan($dirname);
                } else {
                    $path[] = $dirname;
                }
            }
        }

        return $path;
    }

  

原文地址:https://www.cnblogs.com/bandbandme/p/11687577.html

时间: 2024-10-20 05:23:33

遍历目录的正确方法的相关文章

Python获取脚本所在目录的正确方法

http://www.jb51.net/article/49035.htm 文章主要介绍了Python获取脚本所在目录的正确方法 1.以前的方法 如果是要获得程序运行的当前目录所在位置,那么可以使用os模块的os.getcwd()函数. 如果是要获得当前执行的脚本的所在目录位置,那么需要使用sys模块的sys.path[0]变量或者sys.argv[0]来获得.实际上sys.path是Python会去寻找模块的搜索路径列表,sys.path[0]和sys.argv[0]是一回事因为Python会

PHP遍历目录四种方法

学习SPL的时候,遇到了DirectoryIterator这个目录类,谢了一下遍历目录的方法.于是总结一下遍历目录的四种写法 如下: <?php /* * 方法一:利用SPL的目录类,这个很简单 */ $obj = new DirectoryIterator('E:\wamp\bin\php\php5.3.3'); foreach ($obj as $file){ echo $file->getFileName(); echo "<br/>"; } /* * 方

Python获取脚本所在目录的正确方法【转】

1.以前的方法 如果是要获得程序运行的当前目录所在位置,那么可以使用os模块的os.getcwd()函数. 如果是要获得当前执行的脚本的所在目录位置,那么需要使用sys模块的sys.path[0]变量或者sys.argv[0]来获得.实际上sys.path是Python会去寻找模块的搜索路径列表,sys.path[0]和sys.argv[0]是一回事因为Python会自动把sys.argv[0]加入sys.path. 具体来说,如果你在C:\test目录下执行python getpath\get

文件操作-正确的遍历目录的方法

1. 看手册的例子说的 very good 在删除目录 和 遍历目录的时候要注意了,应该很少人把名字取为0吧. //  正确的遍历目录的方法 while(false !==( $file= readdir($file_path) ) ){ } //错误的遍历目录的方法 while($file=readdir($file_path)){ } 偶之前就一直使用这个错误的方法 ------------------ 全等 ===  ,不全等 :  !==    值不等,类型不等,值&类型都不等.. re

Linux和Windows的遍历目录下所有文件的方法对比

首先两者读取所有文件的方法都是采用迭代的方式,首先用函数A的返回值判断目录下是否有文件,然后返回值合法则在循环中用函数B直到函数B的返回值不合法为止.最后用函数C释放资源. 1.打开目录 #include <sys/types.h> #include <dirent.h> DIR *opendir(const char *name); 先看Linux的,返回的是DIR*,因此出错时返回NULL(0).而这里不用关心DIR结构具体定义,只需要知道是对它进行操作(注意:DIR不是保存文

lua在linxu和windows系统下的遍历目录的方法

在windows下遍历目录使用lfs库:例如遍历整个目录下的所有文件 local lfs = require "lfs" function findPathName(path)  local fileTbl = {}  for file in lfs.dir(path) do   if file ~= "." and file ~= ".." then     fileTbl[#fileTbl + 1] = file   end  end  re

dedecms网站迁移时记得将安装目录放空 附迁移的正确方法

这段时间在赶一些新项目,我们建站一般都在本地服务器搭建起来,测试得差不多了才传到网上,这样对蜘蛛也相对友好一些,要不然改来改去变化太大给搜索引擎的第一印象很不好.但是由于本地环境和服务器环境还是有一些差别,有的配置要记得修改噢!以dedecms为例,用ftp将本地建好的文件传到网站上,重新生成文档出现了很多错误,相对路径要改,最重要的是系统配置参数的安装目录要放空,否则会提示错误. dedecms网站迁移的正确方法: 1.首先登录织梦的后台,进入到“系统>数据库备份/还原”栏目. 2.将备份好的

PHP遍历目录/文件的两种方法

1.使用$obj = dir($dir)返回目录对象$obj,然后使用其$obj->read()方法遍历: 1 <?php 2 /** 3 * Created by PhpStorm. 4 * User: Zhang He 5 * Date: 2015/6/8 6 * Time: 12:21 7 */ 8 function traverseDir( $filedir ) { 9 //打开目录 10 $dir = @dir($filedir); 11 //列出目录中的文件 12 while ((

Linux C语言遍历目录结构

遍历目录结构查找文件是很常用的功能,今天介绍一下使用Linux C 遍历Linux目录结构的方法: linux提供几个系统调用,以便于直接目录的读取和操作: DIR * opendir(const char * pathname); struct dirent * readdir(DIR * dir_handle); int closedir(DIR * dir); int stat(const char *file_name, struct stat *buf); #include <unis