• Модуль: webdav
  • Путь к файлу: ~/bitrix/modules/webdav/classes/diskstorage.php
  • Класс: CDiskStorage
  • Вызов: CDiskStorage::addDirectory
public function addDirectory($name, $parentDirectoryId)
{
	if(!$parentDirectoryId)
	{
		$folder = $this->storage->getRootObject();
	}
	else
	{
		$folder = Folder::loadById($parentDirectoryId);
	}

	if(!$folder)
	{
		$this->errorCollection->add(array(new Error("Could not find folder " . __METHOD__ . "  by  {$name}, {$parentDirectoryId}", 189146)));
		return array();
	}

	if(!$folder->canAdd($this->storage->getCurrentUserSecurityContext()))
	{
		throw new CWebDavAccessDeniedException;
	}

	$sub = $folder->addSubFolder(array(
		'NAME' => $name,
		'CREATED_BY' => $this->getUser()->getId(),
	));
	if($sub)
	{
		$this->loadFormattedFolderTreeAndBreadcrumbs();
		return $this->formatFolderToResponse($sub);
	}
	$this->errorCollection->add(array(new Error("Could not " . __METHOD__ . " , addSubFolder by name {$name}, parentId {$folder->getId()}", 199147)));
	$this->errorCollection->add($folder->getErrors());

	/** @var Folder $folder */
	$parentId = $folder->getRealObject()->getId();
	$folder = Folder::load(array('NAME' => $name, 'PARENT_ID' => $parentId));
	if($folder)
	{
		$this->loadFormattedFolderTreeAndBreadcrumbs();
		return $this->formatFolderToResponse($folder);
	}
	$this->errorCollection->add(array(new Error("Could not " . __METHOD__ . " , load Folder by name {$name}, parentId {$parentId}", 11147)));
	return array();
}