1Filename(3)                      OCaml library                     Filename(3)
2
3
4

NAME

6       Filename - Operations on file names.
7

Module

9       Module   Filename
10

Documentation

12       Module Filename
13        : sig end
14
15
16       Operations on file names.
17
18
19
20
21
22
23       val current_dir_name : string
24
25       The conventional name for the current directory (e.g.  .  in Unix).
26
27
28
29       val parent_dir_name : string
30
31       The conventional name for the parent of the current directory (e.g.  ..
32       in Unix).
33
34
35
36       val dir_sep : string
37
38       The directory separator (e.g.  / in Unix).
39
40
41       Since 3.11.2
42
43
44
45       val concat : string -> string -> string
46
47
48       concat dir file returns a file name that designates file file in direc‐
49       tory dir .
50
51
52
53       val is_relative : string -> bool
54
55       Return  true  if  the  file  name is relative to the current directory,
56       false if it is absolute (i.e. in Unix, starts with / ).
57
58
59
60       val is_implicit : string -> bool
61
62       Return true if the file name is relative and does not start with an ex‐
63       plicit  reference  to the current directory ( ./ or ../ in Unix), false
64       if it starts with an explicit reference to the root  directory  or  the
65       current directory.
66
67
68
69       val check_suffix : string -> string -> bool
70
71
72       check_suffix  name suff returns true if the filename name ends with the
73       suffix suff .
74
75       Under Windows ports (including Cygwin), comparison is case-insensitive,
76       relying  on String.lowercase_ascii .  Note that this does not match ex‐
77       actly the interpretation of case-insensitive filename equivalence  from
78       Windows.
79
80
81
82       val chop_suffix : string -> string -> string
83
84
85       chop_suffix name suff removes the suffix suff from the filename name .
86
87
88       Raises Invalid_argument if name does not end with the suffix suff .
89
90
91
92       val chop_suffix_opt : suffix:string -> string -> string option
93
94
95       chop_suffix_opt  ~suffix  filename removes the suffix from the filename
96       if possible, or returns None if the filename does not end with the suf‐
97       fix.
98
99       Under Windows ports (including Cygwin), comparison is case-insensitive,
100       relying on String.lowercase_ascii .  Note that this does not match  ex‐
101       actly  the interpretation of case-insensitive filename equivalence from
102       Windows.
103
104
105       Since 4.08
106
107
108
109       val extension : string -> string
110
111
112       extension name is the shortest suffix ext of name0 where:
113
114
115       - name0 is the longest suffix of name that does not contain a directory
116       separator;
117
118       - ext starts with a period;
119
120       - ext is preceded by at least one non-period character in name0 .
121
122       If such a suffix does not exist, extension name is the empty string.
123
124
125       Since 4.04
126
127
128
129       val remove_extension : string -> string
130
131       Return  the  given file name without its extension, as defined in File‐
132       name.extension . If the extension is empty, the  function  returns  the
133       given file name.
134
135       The following invariant holds for any file name s :
136
137
138       remove_extension s ^ extension s = s
139
140
141
142       Since 4.04
143
144
145
146       val chop_extension : string -> string
147
148       Same  as  Filename.remove_extension , but raise Invalid_argument if the
149       given name has an empty extension.
150
151
152
153       val basename : string -> string
154
155       Split a file name into directory name / base file name.  If name  is  a
156       valid  file  name, then concat (dirname name) (basename name) returns a
157       file name which is equivalent to name .  Moreover,  after  setting  the
158       current  directory  to  dirname  name  (with Sys.chdir ), references to
159       basename name (which is a relative file name) designate the  same  file
160       as name before the call to Sys.chdir .
161
162       This  function  conforms  to  the specification of POSIX.1-2008 for the
163       basename utility.
164
165
166
167       val dirname : string -> string
168
169       See Filename.basename .  This function conforms to the specification of
170       POSIX.1-2008 for the dirname utility.
171
172
173
174       val null : string
175
176
177       null is "/dev/null" on POSIX and "NUL" on Windows. It represents a file
178       on the OS that discards all writes and returns end of file on reads.
179
180
181       Since 4.10.0
182
183
184
185       val temp_file : ?temp_dir:string -> string -> string -> string
186
187
188       temp_file prefix suffix returns the name of a fresh temporary  file  in
189       the temporary directory.  The base name of the temporary file is formed
190       by concatenating prefix , then a suitably chosen integer  number,  then
191       suffix .  The optional argument temp_dir indicates the temporary direc‐
192       tory  to   use,   defaulting   to   the   current   result   of   File‐
193       name.get_temp_dir_name  .   The  temporary  file is created empty, with
194       permissions 0o600 (readable and writable only by the file owner).   The
195       file  is  guaranteed  to  be different from any other file that existed
196       when temp_file was called.
197
198
199       Before3.11.2 no ?temp_dir optional argument
200
201
202
203       Raises Sys_error if the file could not be created.
204
205
206
207       val  open_temp_file   :   ?mode:open_flag   list   ->   ?perms:int   ->
208       ?temp_dir:string -> string -> string -> string * out_channel
209
210       Same  as Filename.temp_file , but returns both the name of a fresh tem‐
211       porary file, and an output channel opened (atomically)  on  this  file.
212       This function is more secure than temp_file : there is no risk that the
213       temporary file will be modified (e.g. replaced by a symbolic link)  be‐
214       fore the program opens it.  The optional argument mode is a list of ad‐
215       ditional flags to control the opening of the file.  It can contain  one
216       or  several of Open_append , Open_binary , and Open_text .  The default
217       is [Open_text] (open in text mode). The file is  created  with  permis‐
218       sions  perms (defaults to readable and writable only by the file owner,
219       0o600 ).
220
221
222       Before4.03.0 no ?perms optional argument
223
224
225
226       Before3.11.2 no ?temp_dir optional argument
227
228
229
230       Raises Sys_error if the file could not be opened.
231
232
233
234       val get_temp_dir_name : unit -> string
235
236       The name of the temporary directory: Under Unix, the value of  the  TM‐
237       PDIR environment variable, or "/tmp" if the variable is not set.  Under
238       Windows, the value of the TEMP environment variable,  or  "."   if  the
239       variable is not set.  The temporary directory can be changed with File‐
240       name.set_temp_dir_name .
241
242
243       Since 4.00.0
244
245
246
247       val set_temp_dir_name : string -> unit
248
249       Change the temporary directory returned  by  Filename.get_temp_dir_name
250       and  used by Filename.temp_file and Filename.open_temp_file .  The tem‐
251       porary directory is a domain-local value which is  inherited  by  child
252       domains.
253
254
255       Since 4.00.0
256
257
258
259       val quote : string -> string
260
261       Return  a  quoted version of a file name, suitable for use as one argu‐
262       ment in a command line, escaping all meta-characters.   Warning:  under
263       Windows,  the output is only suitable for use with programs that follow
264       the standard Windows quoting conventions.
265
266
267
268       val quote_command  :  string  ->  ?stdin:string  ->  ?stdout:string  ->
269       ?stderr:string -> string list -> string
270
271
272       quote_command  cmd args returns a quoted command line, suitable for use
273       as an argument to Sys.command , Unix.system , and the Unix.open_process
274       functions.
275
276       The  string  cmd  is the command to call.  The list args is the list of
277       arguments to pass to this command.  It can be empty.
278
279       The optional arguments ?stdin and ?stdout and ?stderr  are  file  names
280       used  to redirect the standard input, the standard output, or the stan‐
281       dard error of the command.  If ~stdin:f is given, a redirection < f  is
282       performed and the standard input of the command reads from file f .  If
283       ~stdout:f is given, a redirection > f is  performed  and  the  standard
284       output  of the command is written to file f .  If ~stderr:f is given, a
285       redirection 2> f is performed and the standard error of the command  is
286       written  to  file  f .  If both ~stdout:f and ~stderr:f are given, with
287       the exact same file name f , a 2>&1 redirection is  performed  so  that
288       the  standard  output  and the standard error of the command are inter‐
289       leaved and redirected to the same file f .
290
291       Under Unix and Cygwin, the command, the arguments, and the redirections
292       if  any  are  quoted  using  Filename.quote , then concatenated.  Under
293       Win32, additional quoting is performed as required by the cmd.exe shell
294       that is called by Sys.command .
295
296
297       Since 4.10.0
298
299
300       Raises  Failure  if  the command cannot be escaped on the current plat‐
301       form.
302
303
304
305
306
307OCamldoc                          2023-07-20                       Filename(3)
Impressum