-
php中删除文件夹以及文件夹中的文件程序代码
unlink在php中是删除文件如果单文件删除我们直接使用unlink就可以了,如果是目录中的删除我们需要遍历目录进入递归操作删除了,下面来看一个例子.
在学习本方法之前我们最rmdir();函数,这个函数就是根据指定的文件路劲,删除文件或者是文件夹,但是当删除的是文件夹,并且文件夹里面还有内容的时候,就会出现Directory not empty 的错误,这个怎么来解决呢,现在我们就通过编写一个函数来解决这个问题.
在本实例中使用到了php中比较重要的几个文件操作的函数.
1.opendir:如果该函数成功运行,将返回一组目录流(一组目录字符串),如果失败将返回错误[error]。你可以在函数的最前面加上“@”来隐藏错误。
2.readdir:从目录留里面里面的返回的结果是,首先是一个.(表示这个目录,进入目录开始读取),返回..(表示已经在目录中,正在读取目录中的文件)然后返回文件或者文件夹的名字,如果没有则返回false
3.closedir:关闭目录流
完整代码如下:
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <title>Insert title here</title>
- </head>
- <body>
- <?php
- //开源软件:phpfensi.com
- function delDirAndFile($dirName,$flag) {
- if (@$handle = opendir ( "$dirName" )) {
- //如果该函数成功运行,将返回一组目录流(一组目录字符串),如果失败将返回错误[error]。你可以在函数的最前面加上“@”来隐藏错误。
- while ( false!==($item = readdir($handle))) {
- //从目录留里面里面的返回的结果是,首先是一个.(表示这个目录,进入目录开始读取),返回..(表示已经在目录中,正在读取目录中的文件)
- //然后返回文件或者文件夹的名字,如果没有则返回false
- if ($item!= "." && $item != "..") {
- //这里是当有文件或者是文件夹的时候开始做出判断
- if (is_dir("$dirName/$item" )) {
- //如果是文件夹,递归都用
- delDirAndFile("$dirName/$item");
- } else {
- //否则就删除文件
- if (unlink ( "$dirName/$item" ))
- //判断文件是不是删除成功了
- echo "删除文件 $dirName/$itemn";
- }
- }
- }
- closedir ($handle );//关闭文件目录流
- if($flag==true){
- if (rmdir($dirName ))
- echo '目录以及文件删除成功';//最后删除输入的文件夹
- }
- }
- }
- ?>
- <?php
- delDirAndFile("dd",false);
- ?>
- </body>
- </html>
代码的基本介绍在代码中都有说明,现在我们来看看测试的结果.
出处:http://www.phpfensi.com/php/20150411/9213.html
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式