PHP文件的遍历操作
1、文件的判断
a) is_dir($path):判断是否是文件夹
b) is_file($path):判断是否是文件
c) file_exists($path):判断文件是否存在
2、文件的操作
a) opendir($path):打开文件夹
b) readdir($dirSource)):读取文件夹的资源
c) closedir($dirSource):关闭文件夹的资源
3、遍历操作的类型
a) 读取文件夹的所有内容
b) 复制整一个文件夹
c) 删除整一个文件夹
d) 剪切整一个文件夹
4、关键点
复制、删除、剪切文件夹的前提是:你能够遍历获取文件夹下的信息。然后你才有可能进行后续的操作,遍历读取这一步是最为重要的。
5、遍历文件夹的思路
a) 打开文件夹
b) 获取文件夹下的文件、文件夹的信息
c) 如果是文件,那么将当前文件夹的路径和文件名信息拼接成一条相对路径或者绝对路径记录起来,以代表你当前读取到的文件
d) 如果是文件夹,那么继续打开文件夹,重复b-d的操作
e) 读取完毕,关闭文件目录(目录如果打开后没有关闭,第一是浪费性能,第二是无法删除)
6、复制整一个文件夹
有了遍历读取文件夹的思路后,复制的操作就十分类似了,你只要能读到源文件,那么你就可以获取源文件的路径了,自然就可以进行文件复制的操作了,
PHP中只提供了一个copy()函数,它只能用于文件间的复制,不能用于文件夹的复制
所谓的复制文件夹,其实可以理解为,我新建了一个文件夹,然后名字把源文件夹的文件复制一份到新的文件夹下。
7、删除文件夹
PHP中提供了rmdir()函数用于文件夹的删除操作,但它只能删除空文件夹,PHP中并没有提供删除非空文件夹的函数,所以我们需要自定义一个删除非空文件夹的函数
删除非空文件夹:
1、打开文件夹。
2、删除文件夹下所有文件,让文件夹变成空文件夹。
3、关闭文件夹。
4、把文件夹删除
8、剪切文件夹
PHP中没有提供剪切文件夹操作的函数,我们需要自定义一个函数
剪切文件夹:
1、新建一个文件夹
2、把源文件夹的文件复制一份到新文件夹下
3、删除源文件夹下的所有文件
4、删除源文件夹
9、总结
a) 文件夹遍历操作的前提是你能够遍历读取文件夹下的所有内容
b) 先写出一个优秀的读取文件内容的函数后,再进行其他的操作,其他操作都是细枝末节,读取才是主干。
c) PHP没有提供剪切文件夹、删除非文件夹、复制文件夹的功能,均需要我们自定义实现,实现的前提依赖于copy(),rmdir()这一类的内置函数
d) 文件的遍历操作,读取为重,放到语言的实现思路应该是一样,只是具体细节不一样。