/** * Creates a new folder. * * previously in \TYPO3\CMS\Core\Utility\File\ExtendedFileUtility::func_newfolder() * * @param string $folderName The new folder name * @param Folder $parentFolder (optional) the parent folder to create the new folder inside of. If not given, the root folder is used * @return Folder * @throws Exception\ExistingTargetFolderException * @throws Exception\InsufficientFolderAccessPermissionsException * @throws Exception\InsufficientFolderWritePermissionsException * @throws \Exception */ public function createFolder($folderName, Folder $parentFolder = null) { if ($parentFolder === null) { $parentFolder = $this->getRootLevelFolder(); } elseif (!$this->driver->folderExists($parentFolder->getIdentifier())) { throw new \InvalidArgumentException('Parent folder "' . $parentFolder->getIdentifier() . '" does not exist.', 1325689164); } if (!$this->checkFolderActionPermission('add', $parentFolder)) { throw new Exception\InsufficientFolderWritePermissionsException('You are not allowed to create directories in the folder "' . $parentFolder->getIdentifier() . '"', 1323059807); } if ($this->driver->folderExistsInFolder($folderName, $parentFolder->getIdentifier())) { throw new Exception\ExistingTargetFolderException('Folder "' . $folderName . '" already exists.', 1423347324); } $this->emitPreFolderAddSignal($parentFolder, $folderName); $newFolder = $this->getDriver()->createFolder($folderName, $parentFolder->getIdentifier(), true); $newFolder = $this->getFolder($newFolder); $this->emitPostFolderAddSignal($newFolder); return $newFolder; }
/** * Checks if the given file exists in the given folder * * @param string $folderName * @param Folder $folder * @return bool */ public function hasFolderInFolder($folderName, Folder $folder) { $this->assureFolderReadPermission($folder); return $this->driver->folderExistsInFolder($folderName, $folder->getIdentifier()); }