Удаление каталога и его содержимого

Задача
Необходимо удалить каталог и все его содержимое, включая подкаталоги и их содержимое.

Решение
В UNIX надо выполнить команду rm:

$directory = escapeshellarg($directory);
exec("rm -rf $directory");
В Windows – команду rmdir:
$directory = escapeshellarg($directory);
exec("rmdir /s /q $directory");


Обсуждение
Очевидно, что удаление файлов может быть опасным. Не забудьте вызвать функцию escapeshellarg() для переменной $directory, чтобы не удалить непредусмотренные файлы.
Поскольку встроенная в PHP функция rmdir(), которая удаляет каталоги, работает только с пустыми каталогами, а функция unlink() не принимает групповые символы оболочки, то вызов системной программы намного легче, чем рекурсивное выполнение цикла по всем файлам в каталоге с их удалением и последующим удалением каждого каталога. Однако если внешняя утилита недоступна, то для удаления каждого подкаталога можно модифицировать функцию.
Теги:
Удаление каталога
Добавлено: 22 Июля 2018 18:44:39 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...