首页 > 代码库 > php中通过递归实现删除目录下的所有文件
php中通过递归实现删除目录下的所有文件
(本文转载于:www.klsele.com.cn)
php中通过递归实现删除目录下的所有文件。,有需要的朋友可以参考下。
最近遇到一个实际问题,需要清空制定目录下的所有文件及清空数据库。清空数据库不难,但要如何递归删除一个目录下的所有文件呢。 于是去网上研究了下资料再加上自己琢磨解决了这一问题。
先贴代码:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <?php function delFile( $dirName ){ if ( $handle = opendir( "$dirName" )){ while (( $item = readdir( $handle ))!=false){ if ( $item != "." && $item != ".." ) { if ( is_dir ( "$dirName/$item" ) ) { delFileUnderDir( "$dirName/$item" ); } else unlink( "$dirName/$item" ); } } closedir ( $handle ); } ?> <?php delFile( ‘/home/sources‘ ); ?> |
先讲解几个函数:
opendir() :函数打开一个目录句柄,可由 closedir(),readdir() 和 rewinddir() 使用。
若成功,则该函数返回一个目录流,否则返回 false 以及一个 error。可以通过在函数名前加上 "@" 来隐藏 error 的输出。例如$dir=@ opendir("image");
readdir():返回由opendir函数打开的目录句柄中的条目,即顺序返回文件夹中的文件名,顺序按照文件系统中制定的排序方式。
id_dir():即检测参数文件是否为目录,如果是返回true.
un_link():即删除制定文件。
所以程序执行思路为:函数调用主目录,然后顺序检测每一文件是否为目录,如果为目录则递归调用函数,并对不为目录的文件进行删除,直到遍历完所有的文件。
这个程序只实现删除文件夹里面的内容,而没有删除文件夹本身,如果要实现这一目的,加上下面代码即可:
rmdir($dirName);
http://108.187.5.2
http://108.187.5.3
http://108.187.5.4
http://108.187.5.5
http://108.187.5.6
http://108.187.5.7
http://108.187.5.8
http://108.187.5.9
http://108.187.5.10
http://108.187.5.11
http://108.187.5.12
http://108.187.5.13
http://108.187.5.14
http://108.187.5.15
http://108.187.5.16
http://108.187.5.17
http://108.187.5.18
http://108.187.5.19
http://108.187.5.20
http://108.187.5.21
http://108.187.5.22
http://108.187.5.23
http://108.187.5.24
http://108.187.5.25
http://108.187.5.26
http://108.187.5.27
http://108.187.5.28
http://108.187.5.29
http://108.187.5.30
http://108.187.5.31
http://108.187.5.32
http://108.187.5.33
http://108.187.5.34
http://108.187.5.35
http://108.187.5.36
http://108.187.5.37
http://108.187.5.38
http://108.187.5.39
http://108.187.5.40
http://108.187.5.41
http://108.187.5.42
http://108.187.5.43
http://108.187.5.44
http://108.187.5.45
http://108.187.5.46
http://108.187.5.47
http://108.187.5.48
http://108.187.5.49
http://108.187.5.50
http://108.187.5.51
http://108.187.5.52
http://108.187.5.53
http://108.187.5.54
http://108.187.5.55
http://108.187.5.56
http://108.187.5.57
http://108.187.5.58
http://108.187.5.59
http://108.187.5.60
http://108.187.5.61
http://108.187.5.62
http://108.187.5.63
http://108.187.5.64
http://108.187.5.65
http://108.187.5.66
http://108.187.5.67
http://108.187.5.68
http://108.187.5.69
http://108.187.5.70
http://108.187.5.71
http://108.187.5.72
http://108.187.5.73
http://108.187.5.74
http://108.187.5.75
http://108.187.5.76
http://108.187.5.77
http://108.187.5.78
http://108.187.5.79
http://108.187.5.80
http://108.187.5.81
http://108.187.5.82
http://108.187.5.83
http://108.187.5.84
http://108.187.5.85
http://108.187.5.86
http://108.187.5.87
http://108.187.5.88
http://108.187.5.89
http://108.187.5.90
http://108.187.5.91
http://108.187.5.92
http://108.187.5.93
http://108.187.5.94
http://108.187.5.95
http://108.187.5.96
http://108.187.5.97
http://108.187.5.98
http://108.187.5.99
http://108.187.5.100
http://108.187.5.101
http://108.187.5.102
http://108.187.5.103
http://108.187.5.104
http://108.187.5.105
http://108.187.5.106
http://108.187.5.107
http://108.187.5.108
http://108.187.5.109
http://108.187.5.110
http://108.187.5.111
http://108.187.5.112
http://108.187.5.113
http://108.187.5.114
http://108.187.5.115
http://108.187.5.116
http://108.187.5.117
http://108.187.5.118
http://108.187.5.119
http://108.187.5.120
http://108.187.5.121
http://108.187.5.122
http://108.187.5.123
http://108.187.5.124
http://108.187.5.125
http://108.187.5.126
http://108.187.5.127
http://108.187.5.128
http://108.187.5.129
http://108.187.5.130
http://108.187.5.131
http://108.187.5.132
http://108.187.5.133
http://108.187.5.134
http://108.187.5.135
http://108.187.5.136
http://108.187.5.137
http://108.187.5.138
http://108.187.5.139
http://108.187.5.140
http://108.187.5.141
http://108.187.5.142
http://108.187.5.143
http://108.187.5.144
http://108.187.5.145
http://108.187.5.146
http://108.187.5.147
http://108.187.5.148
http://108.187.5.149
http://108.187.5.150
http://108.187.5.151
http://108.187.5.152
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。