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의 PathMatcher는 FileSystem.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 객체 자체에서는 직접 이 작업을 수행할 수 없습니다.
다음 두 가지 옵션이 있습니다.
- 경로를 파일로 변환하여 콜 종료File.getName()에서 반환되는 문자열에 포함
- 경로 상의 ToString 콜과 콜 종료그 스트링에.
언급URL : https://stackoverflow.com/questions/20531247/how-to-check-the-extension-of-a-java-7-path
'source' 카테고리의 다른 글
| C에 자체 헤더 파일 생성 (0) | 2022.11.22 |
|---|---|
| phpmyadmin 자동 로그아웃 시간 (0) | 2022.11.22 |
| Amazon RDS에서 CSV 파일로 테이블 내보내기 (0) | 2022.11.22 |
| APT 명령줄 인터페이스와 같은 예/아니오 입력? (0) | 2022.11.22 |
| java: (문자열[])List.toArray()는 ClassCastException을 제공합니다. (0) | 2022.11.22 |