您使用的是哪个版本的 Liferay?
当前趋势在 6.1+ 中如下所示(好吧,当它被正确实现时,但您可以或多或少地在新DLApp
实现的基础上构建):
- 找到父文件夹 ID。
DLFolderConstancts
如果您没有,请使用默认值。
- 假设该文件夹存在并尝试获取它。
NoSuch***Exception
如果没有找到它会抛出一个。如果是这种情况,请手动创建文件夹
你可以这样做:
private Folder getOrCreateFolder(final ServiceContext serviceContext,
final long userId, final Group group, String folderName)
throws PortalException, SystemException {
final long parentFolderId = DLFolderConstants.DEFAULT_PARENT_FOLDER_ID;
final long repositoryId = group.getGroupId();
try {
final Folder prev = DLAppLocalServiceUtil.getFolder(
repositoryId, parentFolderId, folderName);
return prev;
} catch (final NoSuchFolderException e) {
final Folder newFolder = DLAppLocalServiceUtil.addFolder(userId,
repositoryId, parentFolderId, folderName,
"My cool new folder", serviceContext);
return newFolder;
}
}
文档和资料绝对泄露了您为什么这样称呼addFolder()
,请查看门户网站源代码。这不是那么微不足道,但也不是那么难习惯。