php递归获取文件夹,php递归遍历文件夹
用递归实现遍历文件夹及其子目录
*
###什么是递归
**递归: 函数不断的调用函数,开辟内存: 是一种典型使用空间换时间的思想(突然间内存被大量占用,效率很高)。
当一个函数是为了解决某一个问题的时候, 发现在解决的过程中, 出现了子问题与本身要解决的问题(父问题)一致: 子问题与父问题一致,只是规模比较小.
如果碰到了相同的问题, 可以使用父问题的解决方案去解决子问题: 调用函数自己
###递归有两个要素
1 递归点: 解决父问题过程中,发现了子问题与父问题一致: 递归点: 递归调用函数
2 递归出口: 保证函数能够结束的地方就是递归出口
###思路
使用函数解决当前需要解决的问题: 不考虑子问题
寻找递归点: 函数在解决问题的过程中,有没有碰到与父问题相似的问题: 父问题是遍历文件夹: 子问题: 遍历出来的文件刚好又是文件夹
消除产生死递归的要素: .和..文件夹: 一个代表当前,一个代表上级
递归调用函数: 解决子问题
寻找递归出口: 整个文件夹遍历结束也没有发现文件夹:都是文件或者.和..文件夹
增加子文件的缩进: 子文件夹的遍历都是由上一级发展而来: 如果能够在每一层使用scandir的地方,定义一个层级来控制: 就可以描述当前层级是属于第几级,级别代表当前所属哪层一层文件夹: 级别就代表着缩进
###代码实现
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 /*
* 实现遍历文件夹及其子目录
* @param1 string $dir,要获取文件的路径
* @param1 int $level=0,缩进层级
* @return 失败返回false 成功返回遍历结果
*/
function myscandir($dir, $level = 0){
//判断路径是否合法if(!is_dir($dir)) return false;
//取出该路径下的所有文件名(以数组的形式)$files = scandir($dir);
//遍历数组foreach($files as $file){
//剔除.与..目录if($file != '.' && $file != '..'){
//构造新路径$new_dir = $dir . '/' . $file;
//判断输出if(is_file($new_dir)){
//是文件,则以蓝色字体输出
echo str_repeat('  ', $level * 2),"$file
";
}else{
//是路径,则以红色字体输出并继续遍历
echo str_repeat('  ', $level * 2),"$file
";
//递归点
myscandir($new_dir, $level + 1);
}
}
}
}
打完收工:p
原文:大专栏 php递归遍历文件夹
php递归遍历文件夹
php递归获取文件夹,php递归遍历文件夹相关推荐
- php引用下级目录文件夹,使用PHP遍历文件夹与子目录的函数代码
最近对操作文件比较感兴趣的说,所以咱们来把文件夹给遍历了,顺便生成个树. 我们要使用的函数有 Scandir,它的作用是列出指定路径中的文件和目录,就像 Dir 一样. > 与更强力的 Glob ...
- java多线程 文件夹_Java多线程遍历文件夹,广度遍历加多线程加深度遍历结合
复习IO操作,突然想写一个小工具,统计一下电脑里面的Java代码量还有注释率,最开始随手写了一个递归算法,遍历文件夹,比较简单,而且代码层次清晰,相对易于理解,代码如下:(完整代码贴在最后面,前面是功 ...
- python下载文件并改名_Python遍历文件夹并批量改名
在学校时,从六维空间下载了一些电子书,文学类全英文mobi格式的,有24G多.放在硬盘有段时间了,比较占地方,想移到移动硬盘里去.文件的目录格式如下: 第一级目录是按作者名排序的文件夹,第二级目录是以 ...
- linux 循环显示所有的sh.*文件.,利用shell脚本遍历文件夹内所有的文件并作整理统计的方法...
环境: Ubuntu下采用shell脚本实现 案例简述:文件夹内有许多子文件夹,这里需要自动读取所有的文件,包括他们的地址和文件名.通过观察文件名的规律,按照一定的规则裁剪出文件名的某一部分,该部分为 ...
- linux遍历目录删除指定文件,利用shell脚本遍历文件夹内所有的文件并作整理统计的方法-linux删除文件夹...
本篇文章扣丁学堂Linux培训小编给读者们分享一下利用shell脚本遍历文件夹内所有的文件并作整理统计的方法,文章具有很好的参考价值,感兴趣的小伙伴就随小编来了解一下吧. 环境: Ubuntu下采用s ...
- python修改文件后缀_python实现遍历文件夹修改文件后缀
本文实例为大家分享了python实现遍历文件夹修改文件后缀的具体代码,供大家参考,具体内容如下 用法 python Modifer.py ./ -fp java xml # coding:utf-8 ...
- python 文件夹下所有文件_使用Python遍历文件夹下所有文件(包所有含子文件夹)...
我二话不说先贴为敬 def getFile(path,format): print(path) files = os.listdir(path) # 得到文件夹下的所有文件,包含文件夹名称 FileL ...
- SSIS之Foreach循环容器(文件枚举器)遍历文件(关键点 详细步骤 图文讲解)
最近半道接手了一个项目需要使用CSVtoSQL,因为关于SSIS包这个东西是别人已经创建好了的,但不相识,所以接手后就决定自己研究一下,创建SSIS包时,在Foreach循环容器的设置上抠破脑门,网上 ...
- linux shell遍历文件,Linux_shell脚本_遍历文件夹下所有文件
#!/bin/bash functionergodic(){ forfile in `ls$1` do if [-d$1"/"$file] #如果 file存在且是一个目录则为真 ...
- python 文件操作 os.listdir() 遍历文件
功能: 返回所给路径中所有文件(包含文件夹)的名称列表 doc: def listdir(*args, **kwargs): # real signature unknown""& ...
最新文章
- AWS — AWS Wavelength
- 【项目管理】专用中英文术语词汇 205
- 《民国枭雄杜月笙》—— 听后总结
- Boost::context模块fiber的斐波那契测试程序
- app.config数据库路径问题
- NLP文本相似度 - LCS(最长公共子序列)java代码
- python入门:输出1-100之内的所有奇数和偶数
- 过程 线 多线程 并发 同步异步
- jQuery Mobile 1.3.1 发布
- android addr2line 用法,Android studio中NDK开发(四)——使用addr2line分析Crash日志
- uniapp保存图片到相册
- 拉绳位移传感器的零线有电吗?
- win10启用长路径
- 数据结构:单链表(水浒传英雄操作为例)+单链表面试题
- 《平凡的世界》之我看
- 吃豆人,一个小游戏,使用第三方图形库EasyX
- 【编程工具】程序中出现中文乱码的解决方法
- rabbitmq简单入门
- 基于三菱PLC大厅自动门系统的控制设计
- 如何设计出简洁实用的APP开发交互界面?
热门文章
- ARK(xuetr)与Rootkit
- Storm:最火的流式处理框架
- c4droid语言实现窗口,【图片】[c4droid源码]一个简单的计算器源码_c4droid吧_百度贴吧...
- 电商数据指标与《电商数据分析与数据化营销》
- Aplayer音乐播放插件
- 小米wifi链android,小米WiFi链是什么?怎么玩?小米WiFi链app玩法详解
- stdlib.h使用
- app显示机智云服务器图片,【图片】【使用指南】机智云FAQ文档【gokit吧】_百度贴吧...
- tensorflow分类图片预处理
- 实惠的Arduino开发板——合宙ESP32C3