- Модуль: webdav
- Путь к файлу: ~/bitrix/modules/webdav/classes/diskstorage.php
- Класс: CDiskStorage
- Вызов: CDiskStorage::moveFile
public function moveFile($name, $targetElementId, $newParentDirectoryId)
{
if(!$newParentDirectoryId)
{
$parentFolder = $this->storage->getRootObject();
}
else
{
$parentFolder = Folder::loadById($newParentDirectoryId);
}
/** @var File $sourceFile */
$sourceFile = File::loadById($targetElementId);
if(!$sourceFile || !$parentFolder)
{
$this->errorCollection->add(array(new Error("Could not " . __METHOD__ . " by id {$targetElementId}", 11150)));
return false;
}
if(!$sourceFile->canMove($this->storage->getCurrentUserSecurityContext(), $parentFolder))
{
throw new CWebDavAccessDeniedException;
}
if($sourceFile->moveTo($parentFolder, $this->getUser()->getId()))
{
$this->loadFormattedFolderTreeAndBreadcrumbs();
return $this->getFile(null, array('id' => $sourceFile->getId()), true);
}
$this->errorCollection->add(array(new Error("Could not " . __METHOD__ . ", moveTo to {$targetElementId}", 11151)));
$this->errorCollection->add($sourceFile->getErrors());
return array();
}