Блог разработчика 1С-Битрикс

Функции для работы с файловой системой в Битрикс D7. Использование метода deleteDirectory

Метод \Bitrix\Main\IO\Directory::deleteDirectory() является важным инструментом для работы с файловой системой в CMS 1С-Битрикс на платформе D7. Этот метод позволяет рекурсивно удалять директории и все их содержимое, что делает его полезным для управления временными файлами, кэшами, логами и другими каталогами.

Использование метода deleteDirectory

В этой статье мы подробно разберем, как использовать данный метод, приведем примеры кода и обсудим возможные подводные камни.

Описание метода deleteDirectory

Метод deleteDirectory() удаляет указанную директорию и все файлы и подпапки внутри неё. В отличие от старой функции `DeleteDirFilesEx`, которая требует относительный путь от корня сайта, метод deleteDirectory() принимает полный абсолютный путь к файлу или директории на сервере.

Сигнатура метода

public static function deleteDirectory(string $path);
  • Параметр $path — строка, представляющая полный путь к директории, которую необходимо удалить.

Важные особенности

  1. Метод работает рекурсивно, то есть удаляет все содержимое директории, включая вложенные папки и файлы.
  2. В отличие от стандартной функции rmdir(), метод deleteDirectory() не требует предварительной очистки директории.
  3. Метод используется для удаления данных, таких как кэш, логи, временные файлы и другие каталоги, которые могут быть удалены без последствий для работы сайта.

Примеры использования deleteDirectory

Пример 1: Удаление одного каталога и всего его содержимого

// Удаляем каталог /var/www/html/temp1/ и все его содержимое
\Bitrix\Main\IO\Directory::deleteDirectory('/var/www/html/temp1/');

Пример 2: Удаление каталога с вложенными подкаталогами

// Удаляем каталог /var/www/html/uploads/ и все файлы и папки внутри него
\Bitrix\Main\IO\Directory::deleteDirectory('/var/www/html/uploads/');

Пример 3: Удаление временного каталога

// Удаляем временный каталог /var/www/html/temp_data/ с его содержимым
\Bitrix\Main\IO\Directory::deleteDirectory('/var/www/html/temp_data/');

Пример 4: Удаление каталога с логами

// Удаляем каталог /var/www/html/logs/ и все файлы внутри него
\Bitrix\Main\IO\Directory::deleteDirectory('/var/www/html/logs/');

Пример 5: Удаление каталога с изображениями

// Удаляем каталог /var/www/html/images/ и все его содержимое
\Bitrix\Main\IO\Directory::deleteDirectory('/var/www/html/images/');

Важные замечания

  1. Безопасность: Используйте этот метод осторожно, поскольку он безвозвратно удаляет данные. Убедитесь, что вы не удаляете важные файлы или каталоги, которые могут повлиять на работу вашего сайта.
  2. Права доступа: Метод будет работать только в том случае, если у пользователя, под которым работает ваш веб-сервер, есть необходимые права на удаление файлов и каталогов.
  3. Производительность: При удалении больших каталогов с множеством файлов метод может занять некоторое время. Чтобы избежать проблем с производительностью, рекомендуется запускать его в фоновом режиме или с использованием задач cron, если это возможно.
  4. Ошибка при отсутствии прав: Если у вашего процесса нет прав на удаление папки, метод deleteDirectory() вызовет ошибку. Обратите внимание на обработку ошибок при использовании этого метода.

Заключение

Метод \Bitrix\Main\IO\Directory::deleteDirectory() предоставляет удобный способ для рекурсивного удаления директорий и их содержимого в 1С-Битрикс. Используя его, можно легко управлять временными файлами, логами, кэшами и другими данными, которые не требуются в системе. Важно соблюдать осторожность при его применении, чтобы случайно не удалить важные файлы.

Теги: D7, deleteDirectory, файловая система, удаление директорий


Валерий Макеев
10.09.2025 18:19
Код
\Bitrix\Main\IO\Directory::deleteDirectory($_SERVER['DOCUMENT_ROOT'] . '/upload/tmp_cache/');
Этот код рекурсивно удаляет временную директорию кэша в папке /upload/, используя абсолютный путь от корня сайта.

Стоимость услуг по разработке и сопровождению сайтов на 1C-Битрикс

Перенос сайтов на «1С-Битрикс»

сайты на платформе «1С-Битрикс» — это удобство, надежность и высокая посещаемость

от 12 000 рублей
Перенос сайтов с любых CMS и статичных страниц на платформу «1С-Битрикс», с учетом дизайна, верстки и урл-адресов. С сохранением всей информации и структуры сайта.

* зависит от объема выполняемых работ.

Участие в проекте

привлечение в проект на part-time основе

от 30 000 рублей / неделя

Возможно участие в проекте на ежедневной основе, как разработчика. Занятость - до 20 часов в неделю
Минимальный срок - одна неделя.

* сумма фиксированная

Интернет-магазин на готовом решении

от 7 дней

от 40 000 рублей
запуск сайта в максимально короткие сроки

* указана минимальная стоимость. Стоимость выбранной лицензии «1С-Битрикс» оплачивается отдельно.