Как проверить расширение Java 7 Path - программирование
Подтвердить что ты не робот

Как проверить расширение Java 7 Path

Я хотел бы проверить, если Path (введенный в Java 7) заканчивается определенным расширением. Я попробовал метод endsWith() следующим образом:

Path path = Paths.get("foo/bar.java")
if (path.endsWith(".java")){
    //Do stuff
}

Однако это не работает, потому что path.endsWith(".java") возвращает false. Кажется, что метод endsWith() возвращает true, если полное соответствие для всего после окончательного разделителя директорий (например, bar.java), что для меня не подходит.

Итак, как я могу проверить расширение файла Path?

4b9b3361

Ответ 2

Класс Path не имеет понятия "расширение", возможно, потому, что сама файловая система его не имеет. Вот почему вам нужно проверить его представление String и посмотреть, заканчивается ли оно с помощью four пятизначной строки .java. Обратите внимание, что вам нужно другое сравнение, чем просто endsWith, если вы хотите закрыть смешанный случай, например ".JAVA" и ".JAVA":

path.toString().toLowerCase().endsWith(".java");

Ответ 3

Невозможно сделать это непосредственно непосредственно в объекте Path.

Есть два варианта, которые я могу увидеть:

  • Преобразуйте путь в файл и вызовите endWith на String, возвращаемом File.getName()
  • Вызовите toString на пути и вызовите endWith на этой Строке.

Ответ 4

Простое решение:

if( path.toString().endsWith(".java") ) //Do something

При использовании метода Path.endsWith вы должны быть осторожны. Как вы сказали, метод вернет true только в том случае, если он соответствует подэлементу вашего объекта Path. Например:

Path p = Paths.get("C:/Users/Public/Mycode/HelloWorld.java");
System.out.println(p.endsWith(".java")); // false
System.out.println(p.endsWith("HelloWorld.java")); // true