Java 7 경로의 확장을 확인하는 방법
경로 (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의 파일 확장자를 어떻게 확인할 수 있습니까?
Java NIO의 PathMatcher 는 FileSystem.getPathMatcher (String syntaxAndPattern)를 제공합니다 .
PathMatcher matcher = FileSystems.getDefault().getPathMatcher("glob:*.java");
Path filename = ...;
if (matcher.matches(filename)) {
System.out.println(filename);
}
자세한 내용은 파일 찾기 튜토리얼을 참조하십시오.
Path
파일 시스템 자체가없는 탓 클래스는, "확장"의 개념이 없습니다. 그렇기 때문에 String
표현 을 확인하고
4 개의
5 개 문자열로 끝나는 지
확인해야 합니다 .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 개체 자체에서이 작업을 직접 수행 할 수있는 방법은 없습니다.
볼 수있는 두 가지 옵션이 있습니다.
- 경로를 파일로 변환하고 File.getName ()에서 반환 된 문자열에 대해 endsWith를 호출합니다.
- 경로에서 toString을 호출하고 해당 문자열에서 endsWith를 호출하십시오.
참고 URL : https://stackoverflow.com/questions/20531247/how-to-check-the-extension-of-a-java-7-path
'program tip' 카테고리의 다른 글
동일한 값을 가진 행 수 계산 (0) | 2020.11.17 |
---|---|
Git : 푸시 후 커밋 된 파일 제거 (0) | 2020.11.17 |
Spring : Map 또는 Properties 객체로 모든 환경 속성에 액세스 (0) | 2020.11.17 |
PowerPivot, PowerQuery 및 PowerBI의 차이점 (0) | 2020.11.17 |
Ansible : 속성별로 목록 필터링 (0) | 2020.11.17 |