目录操作
创建目录
Mkdir(目录地址,权限,是否递归创建=false);
Rmdir(目录地址)
删除目录
仅仅可以删除空目录。(不支持递归删除)
移动(改名)
Rename(旧地址,新地址)
该函数也支持操作文件。
获取目录内容(文件)
打开目录 目录句柄 = opendir(目录地址)
目录句柄:php程序与目录间的一个联系。
依次读取目录内文件 文件名 = readdir(目录句柄);
依次读取一个文件(子目录),同时向下移动句柄指针。如果读取不到返回false!
目录内存在两个逻辑子目录 ., .. 分别表示当前目录和上级目录!
通过配合 循环结构 完成目录内所有文件的读取:
处理 0 文件名:
关闭目录 closedir()
递归获取目录内容
打开某个目录
依次读取目录内文件
如果某个文件为目录
递归对该目录采用打开,读取,判断这个递归草
递归点: 如果子文件为目录,则递归
出口: 如果目录中不存在子目录,则不需要继续递归!
树状展示
使用特定数量的缩进达到树状目的!
核心问题,计算需要缩进的数量!
缩进级别,与递归调用深度保持一致。每当执行一级递归操作,所找到的文件的缩进级别+1;
语法实现:
增加一个参数,表示当前函数调用的深度级别,每当递归+1;
嵌套
使用多维数组的嵌套,表示层级关系!
例如:
实现:
递归删除
Unlink(文件地址)删除文件。
目录文件名编码问题:
展示时,将操作系统编码转换为响应数据编码。
Windows gbk,项目utf-8
代码的地址中存在中文:需要转换为系统编码,才能被文件系统识别:
由于php基于Linux系统,所以php的文件操作包括文件目录以及文件两部分的操作,只能操作服务器的文件