Function std.path.isValidFilename
Checks that the given file or directory name is valid.
bool isValidFilename(Range)
(
Range filename
)
if ((isRandomAccessRange!Range && hasLength!Range && hasSlicing!Range && isSomeChar!(ElementEncodingType!Range) || isNarrowString!Range) && !isConvertibleToString!Range);
The maximum length of filename
is given by the constant
FILENAME_MAX
. (On Windows, this number is
defined as the maximum number of UTF-16 code points, and the
test will therefore only yield strictly correct results when
filename
is a string of wchar
s.)
On Windows, the following criteria must be satisfied (source):
filename
must not contain any characters whose integer representation is in the range 0-31.filename
must not contain any of the following reserved characters: <>:"/\|?*filename
may not end with a space (' '
) or a period ('.'
).
On POSIX, filename
may not contain a forward slash ('/'
) or
the null character ('\0'
).
Parameters
Name | Description |
---|---|
filename | string to check |
Returns
true
if and only if filename
is not
empty, not too long, and does not contain invalid characters.
Example
import std .utf : byCodeUnit;
assert(isValidFilename("hello.exe" .byCodeUnit));
Authors
Lars Tandle Kyllingstad, Walter Bright, Grzegorz Adam Hankiewicz, Thomas Kühne, Andrei Alexandrescu