El paso a paso o código que encontrarás en este post es la solución más sencilla y válida que encontramos a esta duda o dilema.
Solución:
PathMatcher de Java NIO proporciona FileSystem.getPathMatcher (String syntaxAndPattern):
PathMatcher matcher = FileSystems.getDefault().getPathMatcher("glob:*.java");
Path filename = ...;
if (matcher.matches(filename))
System.out.println(filename);
Consulte el tutorial de búsqueda de archivos para obtener más información.
los Path
class no tiene una noción de “extensión”, probablemente porque el propio sistema de archivos no la tiene. Por eso es necesario comprobar su String
representación y ver si termina con la cuatrocinco personaje string .java
. Tenga en cuenta que necesita una comparación diferente a la simple endsWith
si quieres cubrir mixed caso, como ".JAVA"
y ".Java"
:
path.toString().toLowerCase().endsWith(".java");
Solución simple:
if( path.toString().endsWith(".java") ) //Do something
Debe tener cuidado al usar el método Path.endsWith. Como dijiste, el método devolverá true solo si coincide con un subelemento de su objeto Path. Por ejemplo:
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
Te mostramos las comentarios y valoraciones de los lectores
Si para ti ha sido de ayuda este artículo, nos gustaría que lo compartas con más desarrolladores de esta manera contrubuyes a difundir nuestra información.