
При разработке на платформе Bitrix часто возникает необходимость программно работать с файловой системой – получать списки папок, файлов, их свойства и содержимое. В этой статье мы рассмотрим, как использовать встроенные классы Bitrix для работы с дисковым пространством.
Основы работы с Bitrix Disk API
Bitrix предоставляет мощный инструментарий для работы с файлами через пространство имен \Bitrix\Disk\Internals
. Основными классами для работы являются:
FolderTable
– для работы с папкамиFileTable
– для работы с файлами
Получение списка папок
Для получения списка папок используется класс FolderTable
с методом getList()
:
$resFolder = \Bitrix\Disk\Internals\FolderTable::getList(array(
'select' => array('NAME', '*'),
'filter' => array(
'=PARENT_ID' => $discSectionId,
'DELETED_TYPE' => 0
)
));
Параметры запроса:
- select – массив полей для выборки. В данном случае выбираем название папки и все доступные поля
- filter – условия фильтрации:
=PARENT_ID
– ID родительской папкиDELETED_TYPE => 0
– исключаем удаленные папки
Обработка результатов
После выполнения запроса результаты можно обработать в цикле:
while ($folder = $resFolder->fetch()) {
echo '<pre>';
print_r($folder['NAME'].' ID='.$folder['ID']);
echo '</pre>';
}
Метод fetch()
возвращает по одной записи за итерацию, что позволяет эффективно обрабатывать большие объемы данных.
Работа с файлами
Аналогично папкам, для работы с файлами используется класс FileTable
:
$resFile = \Bitrix\Disk\Internals\FileTable::getList(array(
'select' => array('NAME', '*'),
'filter' => array('=ID' => 1362858)
));
Этот код получает информацию о конкретном файле по его ID.
Практические применения
Данный подход можно использовать для:
- Создания файлового менеджера – отображение структуры папок и файлов
- Синхронизации данных – сравнение локальной и удаленной файловой структуры
- Создания отчетов – анализ использования дискового пространства
- Автоматизации процессов – массовые операции с файлами
Дополнительные возможности фильтрации
Вы можете использовать различные условия фильтрации:
'filter' => array(
'=PARENT_ID' => $parentId,
'DELETED_TYPE' => 0,
'%NAME' => 'документ', // поиск по части названия
'>=CREATE_TIME' => '2024-01-01' // файлы созданные после даты
)
Рекомендации по безопасности
- Всегда проверяйте права доступа пользователя к запрашиваемым папкам и файлам
- Используйте подготовленные запросы для динамических параметров
- Ограничивайте количество возвращаемых записей с помощью параметра
limit
Заключение
API Bitrix для работы с файловой системой предоставляет гибкие возможности для получения и обработки информации о папках и файлах. Правильное использование этих инструментов позволяет создавать эффективные решения для управления контентом и автоматизации рабочих процессов.
Представленные примеры кода можно адаптировать под конкретные задачи вашего проекта, добавляя необходимые условия фильтрации и обработки данных.