module M : sig ... end
exception NotADirectory of M.path
This exception is raised when one of the following functions is called with a non-directory argument
val make_dir : ?mode:int -> ?p:bool -> M.path -> unit
make_dir ?mode ?p filename creates a directory
filename, if it does not already exist. It fails with
NotADirectory if the file already exists, but is not a directory. The
mode argument is the Unix permissions (0o755 by default). The
p argument controls whether parents directories should be created as well, if they don't exist, instead of failing.
val onedir : selector
val recdir : selector
val remove_dir : ?all:bool -> ?glob:string -> M.path -> unit
remove_dir ?all filename removes directory
filename, or complains the
NotADirectory if it does not exist. The
all argument controls whether the function should recursively remove all files and sub-directories included as well. If
glob is specified, it is called to select files to remove based on their basename, and the directories are not deleted even if
val select : ?deep:bool -> ?dft:[ `After | `Before ] -> ?glob:string -> ?path:string -> ?ignore:string -> ?kinds:Unix.file_kind list -> ?filter:(bool -> string -> bool) -> ?follow_links:bool -> ?error:(exn -> M.path -> unit) -> unit -> selector
select ?deep ?dft ?glob ?filter_rec ?filter_fun ?follow_links
?error () creates a selctor to customize a file iterator.
dft arguments controls whether function should recurse (false by default) in sub-directories. If
~dft is not specified, the files are listed in breadth-first mode (
a,b,a/x,b/x,a/x/y for example). If
`Before, the files are listed in depth-first mode, and the ancestors are before their children. If
`After, the are after their children.
ignore arguments can be used to filter the files with regular expressions.
glob is used to choose the files to keep based on their basenames, it is not used for the recursion itself.
path is used to choose the files to keep based on the path, it is not used for the recursion itself.
ignore is used to choose the files to ignore, based on their paths, both during the iteration and the recursion.
kinds argument can be used to restrict the files to the ones of a particular kind.
filter argument is used to select the files to keep.
filter for_rec path should return
true if the file is ok,
filter is called to check a directory for recursion,
false if it is called for the iteration.
follow_links argument is used to decide if a link to directory should be followed (when
deep is also set).
error argument is called when an error occurs, with
exn filename. The default behavior is to ignore errors.
read_dir ?select dir returns the files contained in the directory
dir, recursively. Filenames start from the root of the given directory, i.e. a full filename would be
dir / file.
In a directory, files are sorted in lexicographical order of their names.
read_dir, but returns a list instead of an array
read_dir, but calls a function on every file and directory. It is not equivalent to using
read_dir and then itering on the result, as
iter_dir the function is called during the traversal, not after, so concurrent modifications to the directory might become visible.
iterator ?select dir creates an iterator on directory
dir. The iterator is a function that returns
None when finished, or
Some file with the next file to iter on.
make_select f transforms
f, a function that takes an optional selector, into a function that builds the selector on the fly.
For example: let () = EzFile.make_select EzFile.iter_dir ~deep:true ~f:(fun path -> ...) dirname
which is equivalent to: let () = let select = EzFile.select ~deep:true () in EzFile.iter_dir ~select ~f:(fun path -> ...) dirname
val make_select : (?select:selector -> M.path -> 'a) -> ?deep:bool -> ?dft:[ `After | `Before ] -> ?glob:string -> ?path:string -> ?ignore:string -> ?kinds:Unix.file_kind list -> ?filter:(bool -> string -> bool) -> ?follow_links:bool -> ?error:(exn -> M.path -> unit) -> M.path -> 'a
val mkdir : M.path -> int -> unit
mkdir filename mode simply creates the directory
filename with permissions
val readdir : M.path -> string array
readdir filename returns the files contained in directory
filename as an array of strings. The strings are sorted in lexicographical order.
val rmdir : M.path -> unit
rmdir filename removes directory
filename, or fails if it does not exist or is not a directory.