See also
Doc needs help
The first arg should be named the same as for file_base_name/2:
file_base_name(+Path, ...)
Hence
file_directory_name(+Path, -Directory)
| Did you know ... | Search Documentation: |
| Predicate file_directory_name/2 |
/*[^/]*/*$. If
the result is empty it binds Directory to /
if the first character of File is /
and . otherwise. The behaviour is consistent
with the POSIX dirname program.154Before
SWI-Prolog 7.7.13 trailing / where not
removed, translation /a/b/ into /a/b. Volker
Wysk pointed at this incorrect behaviour.
See also directory_file_path/3
from library(filesex). The system ensures that for every
valid Path using the Prolog (POSIX) directory separators,
following is true on systems with a sound implementation of
same_file/2.155On
some systems, Path and Path2 refer to the same
entry in the file system, but same_file/2
may fail. See also prolog_to_os_filename/2.
...,
file_directory_name(FilePath, Dir),
file_base_name(FilePath, File),
directory_file_path(Dir, File, Path2),
same_file(FilePath, Path2).
The first arg should be named the same as for file_base_name/2:
file_base_name(+Path, ...)Hence
file_directory_name(+Path, -Directory)