new*_*php 3 php while-loop rmdir
如何删除指定目录下的所有子目录?
目录是c:/files/
我想删除其内的所有子目录(示例):
c:/files/something/something/something/
c:/files/another-something/
Run Code Online (Sandbox Code Playgroud)
所以最终 c:/files/ 仍然存在(为空且没有子目录)。
rmdir()只删除给定路径中的最后一个目录...所以我猜我必须循环?:/
感谢所有帮助。
(PS:子目录不包含任何文件)
function rrmdir($dir) {
if (is_dir($dir)) {
$objects = scandir($dir);
foreach ($objects as $object) {
if ($object != "." && $object != "..") {
if (filetype($dir."/".$object) == "dir") rrmdir($dir."/".$object); else unlink($dir."/".$object);
}
}
reset($objects);
rmdir($dir);
}
}
Run Code Online (Sandbox Code Playgroud)
这使用递归解决了问题。