从DLFileEntry得到" / full / path /到/ file"

时间:2017-11-10 08:05:48

标签: liferay liferay-7

在Liferay的文档和媒体中,我创建了一个名为myfolder的文件夹,其中包含一个名为subfolder的文件夹,其中包含一个名为file.txt的文件。

我有file.txt的DLFileEntry。

如何获取字符串/folder/subfolder/file.txt

注意:

  • 上下文:出于显示/报告的目的,我需要获取文件的完整路径,有点像它在面包屑中的显示方式。
  • getTreePath()提供/32701/等标识符,而不是文件夹名称
  • 我为getBreadcrumbs抓住了整个Liferay 7 DXP SP4并且没有源代码,即使Liferay 5中似乎存在具有此名称的方法。

1 个答案:

答案 0 :(得分:0)

这是我的实施:

protected String fullPath(DLFileEntry file) throws PortalException {
    String fileName = file.getFileName();
    DLFolder folder = file.getFolder();

    if (folder == null) {
        return "/" + fileName;
    }
    else {
        return fullPath(folder) + "/" + fileName;
    }
}

protected String fullPath(DLFolder folder) throws PortalException {
    String folderName = folder.getName();
    DLFolder parent = folder.getParentFolder();

    if (parent == null) {
        return "/" + folderName;
    }
    else {
        return fullPath(parent) + folderName;
    }
}

欢迎所有提高可维护性和性能的想法!