두 개의 절대 경로에서 상대 경로 만들기
다음과 같이 두 개의 절대 경로가 제공되면
/var/data/stuff/xyz.dat /var/data
어떻게 할 수 있나요? 두 번째 경로에서 시작하는 상대 경로를 생성합니까? 예를 들어 위 경로에 대해 원하는 출력은 다음과 같습니다.
./stuff/xyz.dat
URI를 사용한 솔루션
한 가지 접근 방식은 URI 클래스를 활용하여 처리할 상대화 방법을 제공합니다. 이러한 변환:
String path = "/var/data/stuff/xyz.dat"; String base = "/var/data"; // Convert the paths to URIs URI pathURI = new File(path).toURI(); URI baseURI = new File(base).toURI(); // Obtain the relative URI URI relativeURI = pathURI.relativize(baseURI); // Extract the relative path String relativePath = relativeURI.getPath(); // relativePath == "stuff/xyz.dat"
참고: 파일의 경우 특히, Java 1.7 이상에서는 @Jirka Meluzin이 제안한 대로 java.nio.file.Path 인터페이스에서 relativize 메소드를 제공합니다.
위 내용은 Java의 두 절대 경로에서 상대 경로를 생성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!