php面向对象(目录操作)
目录操作
创建目录
Mkdir(目录地址,权限,是否递归创建=false);

Rmdir(目录地址)
删除目录

仅仅可以删除空目录。(不支持递归删除)
移动(改名)
Rename(旧地址,新地址)

该函数也支持操作文件。
获取目录内容(文件)
打开目录 目录句柄 = opendir(目录地址)
目录句柄:php程序与目录间的一个联系。

依次读取目录内文件 文件名 = readdir(目录句柄);
依次读取一个文件(子目录),同时向下移动句柄指针。如果读取不到返回false!
目录内存在两个逻辑子目录 ., .. 分别表示当前目录和上级目录!

通过配合 循环结构 完成目录内所有文件的读取:

处理 0 文件名:

关闭目录 closedir()

递归获取目录内容
打开某个目录
依次读取目录内文件
如果某个文件为目录
递归对该目录采用打开,读取,判断这个递归草
递归点: 如果子文件为目录,则递归
出口: 如果目录中不存在子目录,则不需要继续递归!

树状展示
使用特定数量的缩进达到树状目的!
核心问题,计算需要缩进的数量!
缩进级别,与递归调用深度保持一致。每当执行一级递归操作,所找到的文件的缩进级别+1;
语法实现:
增加一个参数,表示当前函数调用的深度级别,每当递归+1;

嵌套
使用多维数组的嵌套,表示层级关系!
例如:

实现:
递归删除
Unlink(文件地址)删除文件。

目录文件名编码问题:
展示时,将操作系统编码转换为响应数据编码。
Windows gbk,项目utf-8

代码的地址中存在中文:需要转换为系统编码,才能被文件系统识别:

由于php基于Linux系统,所以php的文件操作包括文件目录以及文件两部分的操作,只能操作服务器的文件
php面向对象(目录操作)的更多相关文章
- Python之文件与目录操作及压缩模块(os、shutil、zipfile、tarfile)
Python中可以用于对文件和目录进行操作的内置模块包括: 模块/函数名称 功能描述 open()函数 文件读取或写入 os.path模块 文件路径操作 os模块 文件和目录简单操作 zipfile模 ...
- 【转】Python之文件与目录操作(os、zipfile、tarfile、shutil)
[转]Python之文件与目录操作(os.zipfile.tarfile.shutil) Python中可以用于对文件和目录进行操作的内置模块包括: 模块/函数名称 功能描述 open()函数 文件读 ...
- Python之文件与目录操作(os、zipfile、tarfile、shutil)
Python中可以用于对文件和目录进行操作的内置模块包括: 模块/函数名称 功能描述 open()函数 文件读取或写入 os.path模块 文件路径操作 os模块 文件和目录简单操作 zipfile模 ...
- 学习PHP中的目录操作
对于编程语言来说,文件和目录的操作是其最最基础的功能.就像我们日常中最常见的图片上传.文件上传之类的功能,都需要文件和目录操作的支持.今天我们先来简单地学习一下 PHP 中关于目录操作的一些类和函数. ...
- 【C#公共帮助类】FTPClientHelper帮助类,实现文件上传,目录操作,下载等动作
关于本文档的说明 本文档使用Socket通信方式来实现ftp文件的上传下载等命令的执行 欢迎传播分享,必须保持原作者的信息,但禁止将该文档直接用于商业盈利. 本人自从几年前走上编程之路,一直致力于收集 ...
- liunx学习(一):linux下目录操作大全
Linux C函数之文件及目录函数(全):http://blog.sina.com.cn/s/blog_695e489c01013ldd.html linux目录操作发:http://www.cnbl ...
- Java基础知识系列——目录操作
Java对目录操作的许多方法与上一篇文件操作的方法很多是一样的. java.io.File file = new File( "D:\1\2\3\4"); 1.递归创建目录 fil ...
- Python目录操作
Python目录操作 os和os.path模块os.listdir(dirname):列出dirname下的目录和文件os.getcwd():获得当前工作目录os.curdir:返回但前目录('.') ...
- PHP 文件与目录操作函数总结
>>>文件操作 打开 fopen(); 打开文件 读取内容 fread(); 从文件指针 handle 读取最多 length 个字节 readfile(); 读入 ...
随机推荐
- Matlab画图的输出格式
利用Matlab命令,可以输出.eps, .pdf格式的图形.有时候,在图形窗口直接保存会导致图形不完整,这时,可以用如下命令代替: saveas(p1, 't1.eps'); saveas(p1, ...
- C# 清除sqlite密码
C# 清除sqlite密码 .创建空的sqlite数据库. //数据库名的后缀你可以直接指定,甚至没有后缀都可以 //方法一:创建一个空sqlite数据库,用IO的方式 FileStream fs = ...
- php单点登录SSO(Single Sign On)的解决思路
一.什么是单点登录 解释:登录一个系统后,其它系统无需再次登录,即可进入. 二.举个例子: 你登录了淘宝,然后你进入天猫,发现你不用登录了.这时你要注意到,淘宝跟天猫可是完全不一样的域名. 你登录淘宝 ...
- 2-SAT 知识小结
2-SAT 问题: 有 n 个变量,每一个变量都是 bool 类型的,除了这 n 个变量以外,我们还有 m 个关系表达式,关系表达式差不多是这样的: x1 & x2 = false(注意每个表 ...
- 几款抓包工具在windows,mac,linux下的支持分析
抓包工具的使用 几款抓包工具在windows,mac,linux下的支持分析 抓包工具简介 Chrome/Firefox 开发者工具: 浏览器内置,方便易用 Fiddler/Charles: 基于代理 ...
- 数据结构Java版之邻接矩阵实现图(十一)
邻接矩阵实现图,是用一个矩阵,把矩阵下标作为一个顶点,如果顶点与顶点之间有边.那么在矩阵对应的点上把值设为 1 .(默认是0) package mygraph; import java.util.Li ...
- GLTF模型查看器---优化器【转】
https://blog.csdn.net/weixin_43081805/article/details/88743277 Clay Viewer(我只想说好用,直接可以导出gltf的二进制glb格 ...
- np.vstack()和np.hstack()
本文链接:https://blog.csdn.net/m0_37393514/article/details/79538748在这里我们介绍两个拼接数组的方法: np.vstack():在竖直方向上堆 ...
- Python 23种设计模式全(python例子)
从今年5月份开始打算把设计模式都写到博客里,持续到现在总算是写完了.写的很慢,好歹算是有始有终.对这些设计模式有些理解的不准确,有些甚至可能是错的,请看到的同学拍砖留言.内容来源很杂,大部分参考或者摘 ...
- flutter Draggable Widget拖拽控件
Draggable Widget Draggable控件负责就是拖拽,父层使用了Draggable,它的子元素就是可以拖动的,子元素可以实容器,可以是图片.用起来非常的灵活. 参数说明: data: ...