使用PHP遍历一个目录下的所有目录及文件,并删除该目录及其目录下的所有子目录和文件,本次代码通过递归的方式来实现。
用到的函数:
scandir($path) 遍历一个目录下所有文件并返回数组。
unlink($filename) 删除文件。
rmdir($path) 只删除空文件夹。
PHP代码:
/** * 删除当前目录及其目录下的所有目录和文件 * @param string $path 待删除的目录 * @note ?$path路径结尾不要有斜杠/(例如:正确[$path='./static/image'],错误[$path='./static/image/']) */function deleteDir($path) { ???if (is_dir($path)) { ???????//扫描一个目录内的所有目录和文件并返回数组 ???????$dirs = scandir($path); ???????foreach ($dirs as $dir) { ???????????//排除目录中的当前目录(.)和上一级目录(..) ???????????if ($dir != '.' && $dir != '..') { ???????????????//如果是目录则递归子目录,继续操作 ???????????????$sonDir = $path.'/'.$dir; ???????????????if (is_dir($sonDir)) { ???????????????????//递归删除 ???????????????????deleteDir($sonDir); ???????????????????//目录内的子目录和文件删除后删除空目录 ???????????????????@rmdir($sonDir); ???????????????} else { ???????????????????//如果是文件直接删除 ???????????????????@unlink($sonDir); ???????????????} ???????????} ???????} ???????@rmdir($path); ???}}
PHP删除当前目录及其目录下的所有文件
原文地址:https://www.cnblogs.com/itbsl/p/10430718.html