удалить все подкаталоги в указанном каталоге в PHP? - PullRequest
3 голосов
/ 29 июня 2011

Как я могу удалить все подкаталоги в указанном каталоге?

Каталог: c:/files/

, и я хочу удалить все подкаталоги в их (пример):

c:/files/something/something/something/

c:/files/another-something/

Так что в конце концов c: / files / просто остается (пусто и не имеет подкаталогов).

rmdir() удаляет только последний каталог по указанному пути ... так что я догадываюсья должен был зациклить?: /

Вся помощь приветствуется.

(PS: подкаталоги не содержат файлов)

Ответы [ 2 ]

4 голосов
/ 29 июня 2011

Взято из ручной записи PHP для 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); 
   } 
 }

Это решает проблему с помощью рекурсии.

0 голосов
/ 29 июня 2011

Я думаю, что вы ищете RMDIR /S

Например, следующая команда удалит каталог C:\blah и все содержащиеся в нем подкаталоги и файлы. Приглашение не будет отображаться.

RMDIR c:\blah /s /q

...