クラスパスから特定のタイプのファイルを抽出して一時ディレクトリに配置しようとしていますが、「クラスパスへの相対パス」に従ってリソースを抽出したいと考えています。
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-root-relative-path ルックアップを実現する方法についてヒントを教えてもらえますか?
ありがとう
編集:
質問を別の方法で表現した方がよいかどうかはわかりません。
リソースの「クラスパスへの相対パス」を知る方法はありますか? 前の例を使用してください。スキャンclasspath*:/xyz/**/*.bar
してリソースを取得したfile:/some/output/directory/xyz/some/dir/foo.bar
場合、そのリソース () の「相対パス」を取得する方法はあります/xyz/some/dir/foo.bar
か?