Как извлечь имя файла из файла URI и создать ссылку на него? - PullRequest
8 голосов
/ 27 января 2009

Моя проблема: ::

из строки типа "/usr/folder1/folder2/filename.ext"

  • Мне нужно извлечь имя файла только для отображения (только filename.ext).
    • Мой вопрос: как мне это сделать? Разделить на "/" и взять последний элемент - это один из способов, но мне он не пахнет.
  • Мне нужно создать гиперссылку, которая использует URI файла в качестве места назначения. Это будет что-то похожее на файл: //domain.com/usr/folder1/folder2/filename.ext

Я посмотрел на интерфейсы URI и URL в java.net, но не смог найти там ничего полезного.

Кроме того, в некоторых случаях мой путь к файлу может содержать COMMA, SPACE и т. Д. (Папки Windows). Так что имейте это в виду, когда даете какие-либо идеи.

Ответы [ 3 ]

15 голосов
/ 27 января 2009

Вы можете попробовать что-то вроде этого:

File file = new File("/usr/folder1/folder2/filename.ext");
System.out.println(file.getName());

Я не был уверен, сработает ли это, если файл не существует, но только что попробовал его, и, похоже, он работает нормально.

4 голосов
/ 14 марта 2014

CommonsIO предоставляет решения этой проблемы: FilenameUtils.getName(), возвращает имя файла + расширение.

String filename = FilenameUtils.getName("/usr/folder1/folder2/filename.ext");
System.out.println(filename); // Returns "filename.ext"
3 голосов
/ 27 января 2009

Вы должны взглянуть на File class . Особенно для метода getName () .

...