package b0
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=dadde8cfa62be9dabd805fc190b415427b4699ffe3458c153e2f3f9cc5c9b9b4
md5=f96ac96fb0182f2b97dbe9ded452544b
doc/b0.std/B0_std/Os/Path/index.html
Module Os.Path
File system path operations.
These functions operate on files and directories equally. Specific function operating on either kind of path are in the File
and Dir
modules.
Existence
exists p
is Ok true
if p
exists in the file system and Ok false
otherwise. Symbolic links are followed.
must_exist p
is Ok ()
if p
exists in the file system and an error otherwise. Symbolic links are followed.
Deleting and renaming
delete ~recurse p
deletes p
from the file system. If p
is a symbolic link this only deletes the link, not the linked object. If recurse
is true
and p
is a non-empty directory, no error occurs, its contents is recursively deleted. The result is:
Ok true
, ifp
existed and was deleted.Ok false
, if the pathp
did not exist on the file system.Error _
in case of error, in particular ifp
is a non-empty directory andrecurse
isfalse
.
See also File.delete
.
rename ~force ~make_path ~src dst
renames src
to dst
.
- If
force
istrue
anddst
exists it tries to delete it usingFile.delete
dst
. Ifforce
isfalse
anddst
exists the function errors. - If
make_path
istrue
and the parent directory ofdst
does not exist the whole path to the parent is created as needed with permission0o755
(readable and traversable by everyone, writable by the user).
Copying
val copy :
?rel:bool ->
?atomic:bool ->
?allow_hardlinks:bool ->
?follow_symlinks:bool ->
?prune:(Unix.stats -> string -> Fpath.t -> bool) ->
make_path:bool ->
recurse:bool ->
src:Fpath.t ->
Fpath.t ->
(unit, string) result
copy ~make_path ~recurse ~src dst
copies the file or file hierarchy rooted at src
to dst
. The function errors if dst
exists. The semantics and arguments correspond to those of Copying, except this function also works if src
is not a directory. Note that prune
is never called on src
itself FIXME is that a good idea ? also FIXME this should error if src
is a directory and recurse
is false.
See also Copying and Os.File.copy
.
File mode and stat
See also File.is_executable
.
get_mode p
is the file mode of p
. Symbolic links are followed.
set_mode file p
sets the file mode of file
to p
. Symbolic links are followed.
val stat : Fpath.t -> (Unix.stats, string) result
stat p
is p
's file information. Symbolic links are followed.
Symbolic links
For hard links see Hard links.
symlink ~force ~src p
symbolically links src
to p
.
- If
force
istrue
andp
exists it tries to delete it usingFile.delete
p
. Ifforce
isfalse
andp
exists the function errors. - If
make_path
istrue
and the parent directory offile
does not exist the whole path to the parent is created as needed with permission0o755
(readable and traversable by everyone, writable by the user).
symlink_link p
is Ok l
if p
is a symbolic link to l
.
val symlink_stat : Fpath.t -> (Unix.stats, string) result
Temporary paths
type tmp_name = (string -> string, unit, string) format
The type for temporary file name patterns. The string format is replaced by random hexadecimal US-ASCII characters.
tmp ~make_path ~dir name ()
is a file system path in dir
that did not exist when the name was found. It may exist once the function returns though, prefer temporary files and directories creation functions to guarantee the creation of the temporary objects.
name
is used to construct the filename of the file, seetmp_name
for details. It defaults to"tmp-%s"
.dir
is the directory in which the temporary file is created. It defaults toOs.Dir.default_tmp
()
.- If
make_path
istrue
(default) anddir
does not exist the whole path to it is created as needed with permission0o755
(readable and traversable by everyone, writable by the user).