View source code
Display the source code in std/file.d from which this
page was generated on github.
Report a bug
If you spot a problem with this page, click here to create a
Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page.
Requires a signed-in GitHub account. This works well for small changes.
If you'd like to make larger changes you may want to consider using
local clone.
Function std.file.getLinkAttributes
If the given file is a symbolic link, then this returns the attributes of the symbolic link itself rather than file that it points to. If the given file is not a symbolic link, then this function returns the same result as getAttributes.
uint getLinkAttributes(R)
(
R name
)
if (isSomeFiniteCharInputRange!R && !isConvertibleToString!R);
uint getLinkAttributes(R)
(
auto ref R name
)
if (isConvertibleToString!R);
On Windows, getLinkAttributes is identical to getAttributes. It exists on Windows so that you don't have to special-case code for Windows when dealing with symbolic links.
Parameters
Name | Description |
---|---|
name | The file to get the symbolic link attributes of. |
Returns
the attributes
Throws
FileException
on error.
Example
import std .exception : assertThrown;
auto source = deleteme ~ "source";
auto target = deleteme ~ "target";
assert(!source .exists);
assertThrown!FileException(source .getLinkAttributes);
// symlinking isn't available on Windows
version (Posix)
{
scope(exit) source .remove, target .remove;
target .write("target");
target .symlink(source);
writeln(source .readText); // "target"
assert(source .isSymlink);
assert(source .getLinkAttributes .attrIsSymlink);
}
Example
if the file is no symlink, getLinkAttributes behaves like getAttributes
import std .exception : assertThrown;
auto f = deleteme ~ "file";
scope(exit) f .remove;
assert(!f .exists);
assertThrown!FileException(f .getLinkAttributes);
f .write(".");
auto attributes = f .getLinkAttributes;
assert(!attributes .attrIsDir);
assert(attributes .attrIsFile);
Example
if the file is no symlink, getLinkAttributes behaves like getAttributes
import std .exception : assertThrown;
auto dir = deleteme ~ "dir";
scope(exit) dir .rmdir;
assert(!dir .exists);
assertThrown!FileException(dir .getLinkAttributes);
dir .mkdir;
auto attributes = dir .getLinkAttributes;
assert(attributes .attrIsDir);
assert(!attributes .attrIsFile);
Authors
License
Copyright © 1999-2024 by the D Language Foundation | Page generated by ddox.