Java: как получить Файл от завершенного URL?

Я получаю URL, который определяет местоположение локального файла (то, что я получаю URL, не находится в моем управлении). URL оставляют законно, как определено в RFC2396. Как я могу преобразовать это к объекту Файла Java?

Странно достаточно URL getFile () метод возвращает Строку, не Файл.

Я создал каталог, названный "/tmp/some dir" (с символом интервала между "некоторыми" и "dir"), который правильно расположен следующим URL: "file:///tmp/some%20dir" (кавычки, добавленные для ясности).

Как я могу преобразовать тот URL в Файл Java?

Предоставлять больше подробную информацию о моей проблеме, следующей лжи печати:

URL url = new URL( "file:///tmp/some%20dir" );
File f = new File( url.getFile() );
System.out.println( "Does dir exist? " + f.exists() );

В то время как следующее (вручную заменяющий "%20" с пространством) верная печать:

URL url = new URL( "file:///tmp/some%20dir" );
File f = new File( url.getFile().replaceAll( "%20", " " ) );
System.out.println( "Does dir exist? " + f.exists() );

Обратите внимание, что я не спрашиваю, почему первый пример печатает ложь, ни почему второй пример с помощью моей верной печати hacky replaceAll, я спрашиваю, как преобразовать завершенный URL в объект Файла Java.

Править: спасибо все, это было почти простофилей, но не точно.

Глупо я искал вспомогательный метод в самом классе URL.

Следующие работы как ожидалось для получения Файла Java от URL Java:

URL url = new URL( "file:///home/nonet/some%20dir" );
File f = new File( URLDecoder.decode( url.getFile(), "UTF-8" ) );
45
задан SyntaxT3rr0r 29 January 2010 в 23:49
поделиться

2 ответа

URLDecoder.decode(url);//deprecated
URLDecoder.decode(url, "UTF-8"); //use this instead

См. соответствующий вопрос Как расшифровать URL-адреса в Java?

20
ответ дан 26 November 2019 в 21:11
поделиться

Файл конструктор, принимающий URI в сочетании с URL # TOUR () должен работать:

URL url = getItSomehow();
File file = new File(url.toURI());
66
ответ дан 26 November 2019 в 21:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: