删除PHP中指定目录中的所有子目录?

时间:2011-06-29 19:28:00

标签: php while-loop rmdir

如何删除指定目录中的所有子目录?

目录为c:/files/

我希望删除其(示例)中的所有子目录:

c:/files/something/something/something/

c:/files/another-something/

所以最后c:/ files /只剩下(是空的,没有子目录)。

rmdir()只删除给定路径中的最后一个目录...所以我猜我必须循环? :/

所有帮助表示赞赏。

(PS:子目录不包含任何文件)

2 个答案:

答案 0 :(得分:4)

取自PHP manual entry for rmdir

 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

相关问题