• Модуль: webdav
  • Путь к файлу: ~/bitrix/modules/webdav/classes/diskstorage.php
  • Класс: CDiskStorage
  • Вызов: CDiskStorage::walkAndBuildTree
private function walkAndBuildTree(Folder $rootFolder)
{
	$sc = $this->storage->getCurrentUserSecurityContext();
	$folders = array();
	foreach($rootFolder->getDescendants($sc,
		array('filter' => array('TYPE' => ObjectTable::TYPE_FOLDER))) as $item)
	{
		/** @var Folder $item */
		if($item->getCode() == Folder::CODE_FOR_UPLOADED_FILES)
		{
			continue;
		}

		$folders[] = $item;
		if($item->isLink())
		{
			if($item->getRealObjectId() == $rootFolder->getRealObjectId())
			{
				continue;
			}

			$folders = array_merge($folders, $this->walkAndBuildTree($item));
		}
	}
	unset($item);

	return $folders;
}