Как избежать получения URL-кодированных путей из URL.getFile ()? - PullRequest
7 голосов
/ 19 января 2012

У меня возникает следующая проблема при попытке получить путь к указанному ресурсу:

    System.out.println("nf="+new File(".").getAbsolutePath());      
    System.out.println("od="+new File(this.getClass().getResource(".").getFile());

Вывод, который я получаю:

nf=C:\Users\current user\workspace\xyz\.
od=C:\Users\current%20user\workspace\xyz\bin\something

Проблема связана с% 20 вещь кодировки URL.Как этого избежать?Есть ли прямой способ избежать получения строки такого типа, или я должен просто запустить возвращенную строку для какого-либо метода, который будет выполнять декодирование URL-адреса?

Спасибо

1 Ответ

12 голосов
/ 19 января 2012

Это связано с особенностью обработки URL в API. Вы можете обойти это, преобразовав строку URL в URI сначала:

new URI(this.getClass().getResource(".").toString()).getPath()

В результате получится строка:

"C:\Users\current user\workspace\xyz\bin\something"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...