Extensions to Core.Core_filename.
val normalize : string ‑> stringnormalize path Removes as much "." and ".." from the path as possible. If the path
is absolute they will all be removed.
val parent : string ‑> stringparent path The parent of the root directory is the root directory returns the path
to the parent of path.
val make_relative : ?to_:string ‑> string ‑> stringmake_relative ~to_:src f returns f relative to src.
is_relative f <> is_relative srcval make_absolute : string ‑> stringmake_absolute src Turn src into an absolute path expanded from the current working
directory.
val expand : ?from:string ‑> string ‑> stringexpand Makes a path absolute and expands ~~username to home directories. In
case of error (e.g.: path home of a none existing user) raises Failure with a
(hopefully) helpful message.
val compare : string ‑> string ‑> intFilename.compare is a comparison that normalizes filenames ("./a" = "a"), uses a more
human ready algorithm based on String.collate ("rfc02.txt > rfc1.txt") and
extenstions ("a.c" > "a.h").
It is a total comparison on normalized filenames.
val with_open_temp_file : ?in_dir:string ‑> ?write:(Pervasives.out_channel ‑> unit) ‑> f:(string ‑> 'a) ‑> string ‑> string ‑> 'awith_open_temp_file ~write ~f prefix suffix create a temporary file; runs write on
its out_channel and then f on the resulting file. The file is removed once f is
done running.
val with_temp_dir : ?in_dir:string ‑> string ‑> string ‑> f:(string ‑> 'a) ‑> 'aRuns f with a temporary dir as option and removes the directory afterwards.
val is_parent : string ‑> string ‑> boolis_parent dir1 dir2 returns true if dir1 is a parent of dir2
Note: This function is context independent, use expand if you want to consider
relatives paths from a given point.
In particular:
"../../a" is never the parent of "." even if this could be true given
form the current working directory.