public function rename(string $newFolderName): self
    {
        $newFolderPath = normalize_path($this->getDirectory().DIRECTORY_SEPARATOR.$newFolderName);
        if ($newFolderPath === $this->getPath() || (!is_dir($newFolderPath) && $this->move($newFolderPath))) {
            return self::load($newFolderPath);
        }
        throw new FolderException('Cannot rename the folder, because the new folder path ('.$newFolderPath.') already exists',
            FolderException::ALREADY_EXIST);
    }