source

Java 7 경로의 확장을 확인하는 방법

itover 2022. 11. 22. 21:30
반응형

Java 7 경로의 확장을 확인하는 방법

(Java 7에서 도입된) Path가 특정 확장자로 끝나는지 확인하고 싶습니다.제가 한번 해봤는데endsWith()다음과 같은 방법:

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

하지만, 이것은 효과가 없는 것 같습니다. 왜냐하면path.endsWith(".java")false가 반환됩니다.그런 것 같아요endsWith()method는 최종 디렉토리 구분자 뒤에 모든 항목에 대해 완전한 일치가 있는 경우에만 true를 반환합니다(예:bar.java그것은 나에게 실용적이지 않다.

그러면 Path의 파일 확장자를 어떻게 확인할 수 있을까요?

Java NIO의 PathMatcherFileSystem.getPathMatcher(String synthaxAndPattern):

PathMatcher matcher = FileSystems.getDefault().getPathMatcher("glob:*.java");

Path filename = ...;
if (matcher.matches(filename)) {
    System.out.println(filename);
}

자세한 내용은 Finding Files 튜토리얼을 참조하십시오.

Path클래스에는 파일 시스템 자체에 클래스 개념이 없기 때문일 수 있습니다.그렇기 때문에 체크가 필요합니다.String 표현과 끝부분이 로 끝나는지 확인합니다. 네 개 오현.java단순한 비교와는 다른 비교가 필요합니다.endsWith예를 들어 혼합된 대소문자를 다루고 싶은 경우".JAVA"그리고.".Java":

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

심플한 솔루션:

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

Path.endsWith 메서드를 사용할 때는 주의해야 합니다.지정한 대로 메서드는 Path 객체의 하위 요소와 일치하는 경우에만 true를 반환합니다.예를 들어 다음과 같습니다.

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

Path 객체 자체에서는 직접 이 작업을 수행할 수 없습니다.

다음 두 가지 옵션이 있습니다.

  1. 경로를 파일로 변환하여 콜 종료File.getName()에서 반환되는 문자열에 포함
  2. 경로 상의 ToString 콜과 콜 종료그 스트링에.

언급URL : https://stackoverflow.com/questions/20531247/how-to-check-the-extension-of-a-java-7-path

반응형