/** * Previously in t3lib_extFileFunc::folder_move() * * @param \TYPO3\CMS\Core\Resource\Folder $folderObject * @param string $newName * @throws \Exception * @throws \InvalidArgumentException * @return \TYPO3\CMS\Core\Resource\Folder */ public function renameFolder($folderObject, $newName) { // TODO unit tests // TODO access checks $returnObject = NULL; if ($this->driver->folderExistsInFolder($newName, $folderObject)) { throw new \InvalidArgumentException('The folder ' . $newName . ' already exists in folder ' . $folderObject->getIdentifier(), 1325418870); } $this->emitPreFolderRenameSignal($folderObject, $newName); $fileObjects = $this->getAllFileObjectsInFolder($folderObject); try { $fileMappings = $this->driver->renameFolder($folderObject, $newName); // Update the identifier of all file objects foreach ($fileObjects as $oldIdentifier => $fileObject) { $newIdentifier = $fileMappings[$oldIdentifier]; $fileObject->updateProperties(array('identifier' => $newIdentifier)); } $returnObject = $this->getFolder($fileMappings[$folderObject->getIdentifier()]); } catch (\Exception $e) { throw $e; } $this->emitPostFolderRenameSignal($folderObject, $newName); return $returnObject; }