Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Метод для добавления '/' к имени каталога


Автор: Barvetal 27.9.2006, 20:22
Всем привет!

Есть у меня методе, которая принимает имя каталога параметром. Но мне неизвестно, содержит ли каталог символ '/' в конце. Мне нужно в моем методе составить путь к файлу, а для этого нужно чтобы в конце имени каталога гарантированно был '/'.

Есть ли в java метод, который добавляет символ '/' в конец имени каталога, если этого символа там нет?

В Delphi аналогичный метод называется IncludeTrailingBackslash.

Всем заранее спасибо!

Автор: y3u 27.9.2006, 21:38
ну во-первых, в какой-нибудь ОС может быть иной от бек слеша разделитель пути к файлу, поэтому хардкорить такие вещи в Java не принято, на худой конец надо использовать File.separatorChar, если работа идет с файлом. у File есть конструктор File(String parent, String child), парент - это каталог, в котором лежит сам файл, конструктор сработает правильно независимот от наличия в конце разделителя. А вообще, по уму, надо пользоваться URL, что более универсально... Пример из жизни, надо обратиться к файлу внутри JAR в EAR, при чем надо учитывать, что на аппсервере все может деплоиться как папочками, тогда протокол обращения к файлу внутри распакованого джарника будет file://, так и архивом, тогда протокол обращения к файлу будет JAR...

Автор: Alita 28.9.2006, 12:16
Похожий метод есть у класса String:

public boolean endsWith(String suffix) 
Tests if this string ends with the specified suffix. 
Parameters:suffix - the suffix. (в данном случае "/")
Returns:true if the character sequence represented by the argument is a suffix of the character sequence represented by this object; false otherwise.

А вообще File и всякие OutputStream'ы воспринимают путь вне зависимости от наличия в конце разделителя.
А для получения разделителя можно пользоваться System.getProperty("file.separator").

Автор: alexandro 4.10.2006, 06:58
new File(File parent, String child);
Creates a new File instance from a parent abstract pathname and a child pathname string.

Сам добавит /, если надо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)