• Модуль: disk
  • Путь к файлу: ~/bitrix/modules/disk/lib/folder.php
  • Класс: Bitrix\Disk\Folder
  • Вызов: Folder::deleteTree
public function deleteTree($deletedBy)
{
	$this->errorCollection->clear();

	$parameters = array(
		'select' => array(
			'*',
			'DEPTH_LEVEL' => 'PATH_CHILD.DEPTH_LEVEL',
		),
		'filter' => array(
			'PATH_CHILD.PARENT_ID' => $this->id,
		),
		'order' => array('DEPTH_LEVEL' => 'DESC')
	);

	$success = true;
	$objectIterator = FolderTable::getList(static::prepareGetListParameters($parameters));
	foreach ($objectIterator as $objectRow)
	{
		if ($objectRow['ID'] == $this->id)
		{
			//to modify current object. Don't make another instance of $this->id
			$object = $this;
		}
		else
		{
			$object = BaseObject::buildFromArray($objectRow);
		}

		/** @var Folder|File */
		if($object instanceof Folder)
		{
			/** @see \Bitrix\Disk\Folder::deleteNonRecursive */
			$success = $object->deleteNonRecursive($deletedBy);
		}
		elseif($object instanceof File)
		{
			/** @see \Bitrix\Disk\File::delete */
			$success = $object->delete($deletedBy);
		}
	}

	return $success;
}