Function std.file.attrIsFile
Returns whether the given file attributes are for a file.
bool attrIsFile
(
uint attributes
) pure nothrow @nogc @safe;
On Windows, if a file is not a directory, it's a file. So, either
attrIsFile
or attrIsDir
will return true
for the
attributes of any given file.
On POSIX systems, if attrIsFile
is true
, that indicates that the
file is a regular file (e.g. not a block not device). So, on POSIX systems,
it's possible for both attrIsFile
and attrIsDir
to be false
for a particular file (in which case, it's a special file). If a file is a
special file, you can use the attributes to check what type of special file
it is (see the man page for stat
for more information).
Parameters
Name | Description |
---|---|
attributes | The file attributes. |
Returns
true if the given file attributes are for a file
Example
assert(attrIsFile(getAttributes("/etc/fonts/fonts.conf")));
assert(attrIsFile(getLinkAttributes("/etc/fonts/fonts.conf")));
Example
import std .exception : assertThrown;
auto dir = deleteme ~ "dir";
auto f = deleteme ~ "f";
scope(exit) dir .rmdir, f .remove;
dir .mkdir;
assert(!dir .isFile);
assert(!dir .getAttributes .attrIsFile);
assert(!f .exists);
assertThrown!FileException(f .getAttributes .attrIsFile);
f .write(".");
assert(f .isFile);
assert(f .getAttributes .attrIsFile);