Module Base__Import0.Filename
Operations on file names.
val parent_dir_name : string
The conventional name for the parent of the current directory (e.g.
..
in Unix).
val concat : string -> string -> string
concat dir file
returns a file name that designates filefile
in directorydir
.
val is_relative : string -> bool
Return
true
if the file name is relative to the current directory,false
if it is absolute (i.e. in Unix, starts with/
).
val is_implicit : string -> bool
Return
true
if the file name is relative and does not start with an explicit reference to the current directory (./
or../
in Unix),false
if it starts with an explicit reference to the root directory or the current directory.
val check_suffix : string -> string -> bool
check_suffix name suff
returnstrue
if the filenamename
ends with the suffixsuff
.Under Windows ports (including Cygwin), comparison is case-insensitive, relying on
String.lowercase_ascii
. Note that this does not match exactly the interpretation of case-insensitive filename equivalence from Windows.
val chop_suffix : string -> string -> string
chop_suffix name suff
removes the suffixsuff
from the filenamename
. The behavior is undefined ifname
does not end with the suffixsuff
.chop_suffix_opt
is thus recommended instead.
val chop_suffix_opt : suffix:string -> string -> string option
chop_suffix_opt ~suffix filename
removes the suffix from thefilename
if possible, or returnsNone
if the filename does not end with the suffix.Under Windows ports (including Cygwin), comparison is case-insensitive, relying on
String.lowercase_ascii
. Note that this does not match exactly the interpretation of case-insensitive filename equivalence from Windows.- since
- 4.08
val extension : string -> string
extension name
is the shortest suffixext
ofname0
where:name0
is the longest suffix ofname
that does not contain a directory separator;ext
starts with a period;ext
is preceded by at least one non-period character inname0
.
If such a suffix does not exist,
extension name
is the empty string.- since
- 4.04
val remove_extension : string -> string
Return the given file name without its extension, as defined in
Filename.extension
. If the extension is empty, the function returns the given file name.The following invariant holds for any file name
s
:remove_extension s ^ extension s = s
- since
- 4.04
val chop_extension : string -> string
Same as
Filename.remove_extension
, but raiseInvalid_argument
if the given name has an empty extension.
val basename : string -> string
Split a file name into directory name / base file name. If
name
is a valid file name, thenconcat (dirname name) (basename name)
returns a file name which is equivalent toname
. Moreover, after setting the current directory todirname name
(withSys
.chdir), references tobasename name
(which is a relative file name) designate the same file asname
before the call toSys
.chdir.This function conforms to the specification of POSIX.1-2008 for the
basename
utility.
val dirname : string -> string
See
Filename.basename
. This function conforms to the specification of POSIX.1-2008 for thedirname
utility.
val temp_file : ?temp_dir:string -> string -> string -> string
temp_file prefix suffix
returns the name of a fresh temporary file in the temporary directory. The base name of the temporary file is formed by concatenatingprefix
, then a suitably chosen integer number, thensuffix
. The optional argumenttemp_dir
indicates the temporary directory to use, defaulting to the current result ofFilename.get_temp_dir_name
. The temporary file is created empty, with permissions0o600
(readable and writable only by the file owner). The file is guaranteed to be different from any other file that existed whentemp_file
was called. RaiseSys_error
if the file could not be created.- before 3.11.2
no ?temp_dir optional argument
val open_temp_file : ?mode:Stdlib.open_flag list -> ?perms:int -> ?temp_dir:string -> string -> string -> string * Stdlib.out_channel
Same as
Filename.temp_file
, but returns both the name of a fresh temporary file, and an output channel opened (atomically) on this file. This function is more secure thantemp_file
: there is no risk that the temporary file will be modified (e.g. replaced by a symbolic link) before the program opens it. The optional argumentmode
is a list of additional flags to control the opening of the file. It can contain one or several ofOpen_append
,Open_binary
, andOpen_text
. The default is[Open_text]
(open in text mode). The file is created with permissionsperms
(defaults to readable and writable only by the file owner,0o600
).- raises Sys_error
if the file could not be opened.
- before 4.03.0
no ?perms optional argument
- before 3.11.2
no ?temp_dir optional argument
val get_temp_dir_name : unit -> string
The name of the temporary directory: Under Unix, the value of the
TMPDIR
environment variable, or "/tmp" if the variable is not set. Under Windows, the value of theTEMP
environment variable, or "." if the variable is not set. The temporary directory can be changed withFilename.set_temp_dir_name
.- since
- 4.00.0
val set_temp_dir_name : string -> unit
Change the temporary directory returned by
Filename.get_temp_dir_name
and used byFilename.temp_file
andFilename.open_temp_file
.- since
- 4.00.0
val temp_dir_name : string
The name of the initial temporary directory: Under Unix, the value of the
TMPDIR
environment variable, or "/tmp" if the variable is not set. Under Windows, the value of theTEMP
environment variable, or "." if the variable is not set.- deprecated
You should use
Filename
.get_temp_dir_name instead.
- since
- 3.09.1