如何删除指定目录中的所有子目录?
目录为c:/files/
我希望删除其(示例)中的所有子目录:
c:/files/something/something/something/
c:/files/another-something/
所以最后c:/ files /只剩下(是空的,没有子目录)。
rmdir()
只删除给定路径中的最后一个目录...所以我猜我必须循环? :/
所有帮助表示赞赏。
(PS:子目录不包含任何文件)
答案 0 :(得分:4)
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);
}
}
这解决了使用递归的问题。
答案 1 :(得分:-1)
我认为您正在寻找RMDIR /S
例如,以下命令将删除目录C:\blah
及其中包含的所有子目录和文件。没有提示。
RMDIR c:\blah /s /q