Legend:
Library
Module
Module type
Parameter
Class
Class type
Library
Module
Module type
Parameter
Class
Class type
File operations with filenames represented by an abstract type FileGen.t
include FileSig.FILE_OPERATIONS
include FileSig.FILENAME_OPERATIONS
val is_absolute : t -> bool
val is_relative : t -> bool
val is_implicit : t -> bool
val check_suffix : t -> string -> bool
val extensions : t -> string list
val basename : t -> string
val last_extension : t -> string option
val current_dir_name : t
val open_in : t -> in_channel
val open_out : t -> out_channel
val open_in_bin : t -> in_channel
val open_out_bin : t -> out_channel
val open_fd :
t ->
MinUnix.open_flag list ->
MinUnix.file_perm ->
MinUnix.file_descr
val with_in : t -> (in_channel -> unit) -> unit
val with_in_bin : t -> (in_channel -> unit) -> unit
val with_out : t -> (out_channel -> unit) -> unit
val with_out_bin : t -> (out_channel -> unit) -> unit
val exists : t -> bool
val getcwd : unit -> t
val size : t -> int
val is_directory : t -> bool
val is_link : t -> bool
val remove : t -> unit
val stat : t -> MinUnix.stats
val lstat : t -> MinUnix.stats
module OP : sig ... end
val find_in_path : string list -> string -> t
find_in_path path filename
searches a file in a list of directories.
include FileSig.CONTENT_OPERATIONS
with type in_file := t
and type out_file := t
val read_file : t -> string
read_file file
returns the full content of file
. If the file is opened, it is opened in binary mode, no conversion is applied.
val write_file : t -> string -> unit
write_file file content
creates file file
with content content
. If the file is opened, it is opened in binary mode, no conversion is applied.
val read_subfile : t -> int -> int -> string
read_subfile file pos len
returns a string containing len
bytes read from file file
at pos pos
. If the file is opened, it is opened in binary mode. Raises End_of_file
if the file is too short.
val read_lines : t -> string array
read_lines file
returns the content of file
as an array of lines. If the file is opened, it is opened in text mode.
val read_lines_to_list : t -> string list
read_lines_to_list file
returns the content of file
as a list of lines. If the file is opened, it is opened in text mode.
val write_lines : t -> string array -> unit
write_lines file lines
creates the file file
from an array of lines, using FileChannel.output_line
for each line.
val write_lines_of_list : t -> string list -> unit
write_lines file lines
creates the file file
from a list of lines, using FileChannel.output_line
for each line.
val read_sublines : t -> int -> int -> string array
read_sublines file pos len
returns at most len
lines of the file file
, starting at line pos
. It differs from read_subfile
in that it will not raise any exception if the file is too short. Note that it reads the file from beginning everytimes.
val read_sublines_to_list : t -> int -> int -> string list
Same as read_sublines
, but returns a list of strings.
val iter_blocks : (EzCompat.Bytes.t -> int -> unit) -> t -> unit
iter_blocks f file
reads the content of file file
, and calls f buffer len
on each chunk. The buffer
is reused, and only the first len
bytes are from the file. Chunks have a maximal size of 32768.
val iter_lines : (string -> unit) -> t -> unit
iter_lines f file
calls f line
on all the lines line
of the file file
.
val iteri_lines : (int -> string -> unit) -> t -> unit
iteri_lines f file
calls f line_num line
on every line line
of the file file
, with line_num
the line number, starting with line 0.
include FileSig.DIRECTORY_OPERATIONS with type t := t
exception NotADirectory of t
This exception is raised when one of the following functions is called with a non-directory argument
val make_dir : ?mode:int -> ?p:bool -> t -> 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 remove_dir : ?all:bool -> ?glob:string -> t -> 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, and the directories are not deleted even if all
is true
.
val select :
?deep:bool ->
?dft:[ `After | `Before ] ->
?glob:string ->
?filter:(bool -> string -> string -> bool) ->
?follow_links:bool ->
?error:(exn -> string -> t -> unit) ->
unit ->
t FileSelector.t
select ?deep ?dft ?glob ?filter ?follow_links ?error ()
creates a selctor to customize a file iterator.
The deep
and dft
arguments controls whether function should recurse in sub-directories. If deep
is true
, and ~dft
is not specified, the files are listed in breadth-first mode (a,b,a/x,b/x,a/x/y
for example). If ~dft
is `Before
, the files are listed in depth-first mode, and the ancestors are before their children. If ~dft
is `After
, the are after their children.
The glob
argument can be used to filter the basenames of files with a regular expression.
The filter
argument is called as filter is_dir basename path
where is_dir
is set when checking whether to enter or not into a sub-directory, basename
is the basename of the file and path
is the path starting with a '/', yet relative to the initial directory. filter
is called on every file with is_dir
false to decide whether it should be added or not, and only on sub-directories with is_dir
true to decide whether to enter or not if deep
is true.
The follow_links
argument is used to decide if a link to directory should be followed (when deep
is also set).
The error
argument is called when an error occurs, with error exn path filename
.
val read_dir : ?select:t FileSelector.t -> t -> t array
read_dir ?select filename
returns the files contained in the directory filename
.
In a directory, files are sorted in lexicographical order of their names.
val read_dir_to_list : ?select:t FileSelector.t -> t -> t list
Same as read_dir
, but returns a list instead of an array
val iter_dir :
?select:t FileSelector.t ->
(basename:string -> localpath:string -> file:t -> unit) ->
t ->
unit
Same as read_dir
, but calls a function on every file and directory with the basename, the relative path (yet, starting with a '/') and the filename (i.e. the directory name concatenated with the relative path): f basename path file
. 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.
val iterator : ?select:t FileSelector.t -> t -> unit -> (string * t) option
iterator ?select dir
creates an iterator on directory dir
. The iterator is a function that returns None
when finished, or Some (path, filename)
with the next file to iter on.
val mkdir : t -> int -> unit
mkdir filename mode
simply creates the directory filename
with permissions mode
.
val readdir : t -> 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 : t -> unit
rmdir filename
removes directory filename
, or fails if it does not exist or is not a directory.
val to_string : t -> string
val of_string : string -> t
val of_unix_string : string -> t
val of_win32_string : string -> t
val to_rooted_string : t -> string
val of_path : string -> string list -> t