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

NAME

6       Stdlib.Filename - no description
7

Module

9       Module   Stdlib.Filename
10

Documentation

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