Java: обрабатывать файл / каталог с обратной косой чертой в ресурсах - PullRequest
0 голосов
/ 21 июня 2019

Итак, на моей FS (Linux box, на всякий случай) у меня есть каталоги, которые фактически соответствуют полным путям Windows (не могу изменить это, часть требования):

$ ls -l some-local-dir/
total 8
drwxrwxr-x 2 spiderman spiderman 4096 jun 21 08:30 'C:\desktop\some-dir'

Итак, some-local-dir, это обычный обычный каталог на моем linux box ... и, как вы можете видеть, он показывает уникальный каталог внутри, имя которого состоит из full путь Windows. Нет проблем на Bash. Я могу поэкспериментировать с этим без каких-либо проблем (копирование, размещение вещей внутри и т. Д.).

На Java я могу просмотреть файл и содержимое с помощью File, заменить \ s на \\ s, и это работает. Но когда я пытаюсь использовать Resources.getResource, используя тот же трюк, он не работает:

java.lang.IllegalArgumentException: resource path-inside-resources not found

Я пытался заменить \ на \\ в строках .... даже \\\\ (на всякий случай), но все равно не могу обработать имя каталога.

Интересно, что если я взгляну на IntelliJ, я смогу увидеть до некоторого local-dir в ресурсах, но внутри ничего не отображается (я ожидаю увидеть внутри каталог с особым именем)

ВОЗМОЖНОЕ РЕШЕНИЕ В качестве временного обходного пути для тестирования я буду вообще пропускать использование ресурсов и прибегну к использованию Files.readAllBytes(Paths.get(crazy-path)), который прекрасно работает, если я также добавлю префикс пути для доступа к ресурсам dir из корня проекта). Хотелось бы работать с Resources и не использовать этот обходной путь.

...