/** * Creates a new folder. * * previously in t3lib_extFileFunc::func_newfolder() * * @param string $folderName The new folder name * @param \TYPO3\CMS\Core\Resource\Folder $parentFolder (optional) the parent folder to create the new folder inside of. If not given, the root folder is used * @return \TYPO3\CMS\Core\Resource\Folder The new folder object */ public function createFolder($folderName, \TYPO3\CMS\Core\Resource\Folder $parentFolder = NULL) { if ($parentFolder === NULL) { $parentFolder = $this->getRootLevelFolder(); } if (!$this->driver->folderExists($parentFolder->getIdentifier())) { throw new \InvalidArgumentException('Parent folder "' . $parentFolder->getIdentifier() . '" does not exist.', 1325689164); } if (!$this->checkFolderActionPermission('add', $parentFolder)) { throw new \TYPO3\CMS\Core\Resource\Exception\InsufficientFolderWritePermissionsException('You are not allowed to create directories in the folder "' . $parentFolder->getIdentifier() . '"', 1323059807); } $folderParts = \TYPO3\CMS\Core\Utility\GeneralUtility::trimExplode('/', $folderName, TRUE); foreach ($folderParts as $folder) { // TODO check if folder creation succeeded if ($this->hasFolderInFolder($folder, $parentFolder)) { $parentFolder = $this->driver->getFolderInFolder($folder, $parentFolder); } else { $parentFolder = $this->driver->createFolder($folder, $parentFolder); } } return $parentFolder; }