Constructs a relative path between this path and a given path.
Relativization is the inverse of resolution
.
This method attempts to construct a relative
path
that when resolved
against this path, yields a
path that locates the same file as the given path. For example, on UNIX,
if this path is "/a/b"
and the given path is "/a/b/c/d"
then the resulting relative path would be "c/d"
. Where this
path and the given path do not have a root
component,
then a relative path can be constructed. A relative path cannot be
constructed if only one of the paths have a root component. Where both
paths have a root component then it is implementation dependent if a
relative path can be constructed. If this path and the given path are
equal
then an empty path is returned.
For any two normalized
paths p and
q, where q does not have a root component,
p.relativize(p.resolve(q)).equals(q)
When symbolic links are supported, then whether the resulting path,
when resolved against this path, yields a path that can be used to locate
the same
file as other
is implementation
dependent. For example, if this path is "/a/b"
and the given
path is "/a/x"
then the resulting relative path may be
"../x"
. If "b"
is a symbolic link then is implementation
dependent if "a/b/../x"
would locate the same file as "/a/x"
.
other
| the path to relativize against this path |
IllegalArgumentException
| if other is not a Path that can be relativized
against this path |
Diagram: Path