Как получить правильный дескриптор папки из URI в Java? - PullRequest
0 голосов
/ 07 декабря 2011

Я заметил небольшую проблему.Мое приложение получает URI файла, например file:///C:/temp/somefolder/somedocument.txt в виде строки.

Мое приложение должно проверить папку на наличие дополнительных файлов и обработать их.Чтобы сделать это, я обычно делал бы что-то вроде

File file = new File(myURI);
File folder = file.getParentFile();
File[] peers = folder.getParentFile().listFiles();

К сожалению, это не работает вообще, когда вы используете URI..listFiles всегда возвращает ноль, даже если я открываю дескриптор File() для URI папки.

Любые идеи, как обойти эту проблему?

PS: ни один из методовFile или java.net.URI вернет абсолютный путь, который не является URI;)

Ответы [ 2 ]

1 голос
/ 07 декабря 2011

Ваш myURI на самом деле является String представлением URI.Вы вызываете File, который вы вызываете:

public File(String pathname)

Обратите внимание на бит pathname, это не значение URI-номера.

Попробуйте

File file = new File(new URI(myURI));
0 голосов
/ 07 декабря 2011

Попробуйте:

File file = new File(myURI);
File[] peers = new File(file.getParent()).listFiles();

Это сработало для меня.Однако, если я использую ваш код, я получаю NPE при вызове getParentFile ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...