Я пытаюсь извлечь определенные типы файлов из моего пути к классам и поместить в каталог temp, и я хочу, чтобы ресурсы были извлечены в соответствии с его «относительным путем к пути к классам».Извлечение ресурсов относительно пути к классам
Я могу использовать Spring PathMatchingResourcePatternResolver Spring для получения списка подходящих ресурсов. Например, я сканирую для classpath*:/xyz/**/*.bar
из пути к классам, предположим, что в classpath у меня есть /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
и т. Д.
Может ли кто-нибудь дать мне подсказки о том, как добиться поиска ресурса или извлечения пути к корневому пути?
Благодаря
Edit:
Я не уверен, если это будет лучше, если я ставлю мой вопрос по-другому:
Есть ли способ узнать, что «относительный путь к пути к классам» ресурса? Просто используйте мои предыдущие примеры, если я сканирую classpath*:/xyz/**/*.bar
, и получаю ресурс file:/some/output/directory/xyz/some/dir/foo.bar
, есть ли способ получить «относительный путь» этого ресурса (/xyz/some/dir/foo.bar
)?
* «Я пытаюсь извлечь определенные типы файлов из моего пути к классам и поставить временную директорию,» * Почему? Какую функцию предлагает пользователь? –
Теперь я использую это для решения технического недостатка lib, который я использую, что они плохо работали в получении ресурса из classpath. Я хочу получить связанные ресурсы в локальном каталоге и позволить lib читать его оттуда вместо этого. Однако я считаю, что это не единственный случай, когда мне нужна такая функция. В прошлом я столкнулся с другими случаями, когда я хочу извлекать ресурсы из classpath, чтобы сохранить свою оригинальную структуру «каталога». –