Итак, на моей 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 и не использовать этот обходной путь.