1Stdlib.Filename(3) OCaml library Stdlib.Filename(3)
2
3
4
6 Stdlib.Filename - no description
7
9 Module Stdlib.Filename
10
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)