True when RelPath is Path, relative to the file RelToFile. Path and
RelTo are first handed to absolute_file_name/2, which makes the
absolute and canonical. Below are two examples:
?- relative_file_name('/home/janw/nice',
'/home/janw/deep/dir/file', Path).
Path = '../../nice'.
?- relative_file_name(Path, '/home/janw/deep/dir/file', '../../nice').
Path = '/home/janw/nice'.
Add a terminating /
to get a path relative to a directory, e.g.
?- relative_file_name('/home/janw/deep/dir/file', './', Path).
Path = 'deep/dir/file'.
- Arguments:
-
All | - paths must be in canonical POSIX notation, i.e.,
using / to separate segments in the path. See
prolog_to_os_filename/2. |
- bug
- - It would probably have been cleaner to use a directory
as second argument. We can not do such dynamically as this
predicate is defined as a syntactical operation, which
implies it may be used for non-existing paths and URLs.