>Java >java지도 시간 >Java는 어떻게 두 개의 절대 경로에서 상대 경로를 생성할 수 있습니까?

Java는 어떻게 두 개의 절대 경로에서 상대 경로를 생성할 수 있습니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-09 05:40:21486검색

How Can Java Generate a Relative Path from Two Absolute Paths?

Java를 사용하여 절대 경로에서 상대 경로 생성

Java에서 파일 경로로 작업할 때 상대 경로를 생성해야 할 수 있습니다. 두 개의 절대 경로에서. 상대 경로는 기본 경로를 기준으로 한 위치를 정의합니다. 이는 파일 작업 및 탐색을 단순화하는 데 유용할 수 있습니다.

질문:

두 개의 절대 경로가 제공됩니다.

/var/data/stuff/xyz.dat
/var/data

어떻게 생성할 수 있나요? 두 번째 경로를 기본으로 사용하는 상대 경로는 무엇입니까? 이 예에서 예상되는 상대 경로는 ./stuff/xyz.dat입니다.

답변:

Java에서 상대 경로를 구성하는 한 가지 방법은 다음을 활용하는 것입니다. URI 클래스. URI 클래스는 필요한 검사와 계산을 수행하는 relativize 메서드를 제공합니다.

다음은 URI 클래스를 사용하여 상대 경로를 생성하는 방법입니다.

String path = "/var/data/stuff/xyz.dat";
String base = "/var/data";
String relative = new File(base).toURI().relativize(new File(path).toURI()).getPath();
// relative == "stuff/xyz.dat"

이 예에서 relativize 메서드는 절대 경로를 나타내는 두 개의 URI 개체를 가져와 상대 경로를 나타내는 새 URI 개체를 반환합니다. 그런 다음 getPath() 메소드를 사용하여 상대 경로를 문자열로 추출합니다.

추가 참고:

특히 파일 경로의 경우 Java 버전 1.7 이상에서는 다음을 제공합니다. java.nio.file.Path#relativize 메소드는 Path 객체 사이의 상대 경로를 직접 계산하는 데 사용할 수 있습니다. 이는 파일 경로 작업에 더욱 최적화된 접근 방식을 제공할 수 있습니다.

위 내용은 Java는 어떻게 두 개의 절대 경로에서 상대 경로를 생성할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.