我想从我的类路径中提取某些类型的文件并将其放入临时目录,并且我希望根据其“相对于类路径的相对路径”来提取资源。相对于类路径提取资源
我能够使用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.bar
,file:/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
)?
*“我试图从我的类路径中某些类型的文件,并把到一个临时目录,” *为什么呢?它为用户提供了什么功能? –
现在我正在使用它来解决我正在使用的lib的技术缺陷,他们在从classpath获取资源时效果不佳。我想将捆绑的资源拿到本地目录,让lib从那里读取它。不过,我相信这不是我需要这种功能的唯一情况,在过去我遇到过其他一些情况,我想从classpath中提取资源,但仍保留其原始“目录”结构。 –