有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java提取相对于类路径的资源

我试图从我的类路径中提取某些类型的文件并将其放入临时目录,我希望根据其“相对类路径路径”提取资源

我能够使用Spring的PathMatchingResourcePatternResolver来检索匹配资源的列表。例如,我正在从类路径扫描classpath*:/xyz/**/*.bar,假设在类路径中我有一个/xyz/some/dir/foo.bar,我想将这个资源提取到MY_TEMP_DIR/some/dir/foo.bar。是否需要获取该资源到类路径的相对路径,以便我可以相应地构造输出位置

PathMatchingResourcePatternResolver只返回资源数组,对于该数组,我只能检索资源的URL,但我还想知道此资源的“根”目录是什么。返回的资源可以是各种“格式”,如jar:file:/some/path/somejar.jar!/xyz/some/dir/foo.barfile:/some/output/directory/xyz/some/dir/foo.bar

有人能给我一些关于如何实现资源的提取或类路径根相对路径查找的提示吗

谢谢


编辑:

我不确定用另一种方式提问是否更好:

有没有办法知道资源的“相对类路径”是什么? 仅使用我前面的示例,如果我扫描classpath*:/xyz/**/*.bar,得到一个资源file:/some/output/directory/xyz/some/dir/foo.bar,有没有任何方法可以得到该资源的“相对路径”(/xyz/some/dir/foo.bar


共 (1) 个答案

  1. # 1 楼答案

    如果使用PathMatchingResourcePatternResolver.getResources(String pattern)获取与模式匹配的资源列表,解析资源返回的URL应该很简单。getURL()

    它应该看起来像jar:file://path/to/jar.jar!/path/to/your/resource/foo.bar