列出资源文件夹中的资源

时间:2015-09-25 06:04:51

标签: java spring spring-boot

我在spring boot应用程序后端的resource / static中的js文件夹旁边创建了一个数据文件夹。 我想在用户的选择中列出其内容。 如果我使用基本Java的File和Path函数,我就能列出它。但我不喜欢这种解决方案,因为路径可能会在我们系统的不同环境中发生变化。 我可以使用org.springframework.core.io.ResourceLoader加载文件。我更喜欢这个解决方案,因为它独立于我的系统的文件路径。但我没有找到列出给定资源文件夹中文件的方法。 你有什么想法吗?

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

最后,我将数据文件夹移动到了WEB-INF。 我可以使用以下代码列出它的内容:

@Autowired
ServletContext context; 

public Collection<String> getFileList(String path) {
    Collection<String> result = new ArrayList<String>();

    Set<String> paths = context.getResourcePaths(path);
    for (String p : paths) {
        String[] parts = p.split("/");
        result.add(parts[parts.length-1]);
    }
    return result;
}

我用以下参数调用它:

    getFileList("/WEB-INF/data");

如果在部署期间解压缩WEB-INF文件夹,则此解决方案有效。当数据文件夹保留在war存档中时也可以使用。