Ниже представлен код для удаления директории с помощью методов bitrix:
\Bitrix\Main\IO\Directory::deleteDirectory($path);
$path
- полный путь к удаляемой директории.
Преимущества использования метода \Bitrix\Main\IO\Directory::deleteDirectory():
- Рекурсивное удаление: Удаляет папку со всем её содержимым (файлами и подкаталогами), избавляя от необходимости вручную писать рекурсивные функции.
- Обработка ошибок: При возникновении ошибок (например, недостаточно прав или файл занят) метод генерирует ошибку которую можно перехватить и обработать с помощью блока try catch.
- Кроссплатформенность: Работает корректно на разных ОС, учитывая различия в обработке файлов.
Пример с использованием try catch
Во-первых лучше оборачивать данный метод в try catch чтобы в случаи возникновения ошибки можно было её корректно обработать.
Во-вторых сам метод не возвращает значения, поэтому логика такая: ошибок нет – директория удалена; ошибки есть – директория не удалена.
try {
\Bitrix\Main\IO\Directory::deleteDirectory(\Bitrix\Main\Loader::getDocumentRoot() . '/upload/test');
} catch (\Exception $exception) {
var_dump($exception->getMessage());
}