View source code
Display the source code in std/path.d from which thispage was generated on github.
Report a bug
If you spot a problem with this page, click here to create aBugzilla 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 usinglocal clone.
Function std.path.dirName
Returns the parent directory of path
. On Windows, this
includes the drive letter if present. If path
is a relative path and
the parent directory is the current working directory, returns "."
.
auto dirName(R)(
scope return R path
)
if (isRandomAccessRange!R && hasSlicing!R && hasLength!R && isSomeChar!(ElementType!R) && !isSomeString!R);
auto dirName(C)(
scope return C[] path
)
if (isSomeChar!C);
Parameters
Name | Description |
---|---|
path | A path name. |
Returns
A slice of path
or "."
.
Standards
This function complies with the POSIX requirements for the 'dirname' shell utility (with suitable adaptations for Windows paths).
Example
writeln(dirName("")); // "."
writeln(dirName("file"w)); // "."
writeln(dirName("dir/"d)); // "."
writeln(dirName("dir///")); // "."
writeln(dirName("dir/file"w .dup)); // "dir"
writeln(dirName("dir///file"d .dup)); // "dir"
writeln(dirName("dir/subdir/")); // "dir"
writeln(dirName("/dir/file"w)); // "/dir"
writeln(dirName("/file"d)); // "/"
writeln(dirName("/")); // "/"
writeln(dirName("///")); // "/"
version (Windows)
{
writeln(dirName(`dir\`)); // `.`
writeln(dirName(`dir\\\`)); // `.`
writeln(dirName(`dir\file`)); // `dir`
writeln(dirName(`dir\\\file`)); // `dir`
writeln(dirName(`dir\subdir\`)); // `dir`
writeln(dirName(`\dir\file`)); // `\dir`
writeln(dirName(`\file`)); // `\`
writeln(dirName(`\`)); // `\`
writeln(dirName(`\\\`)); // `\`
writeln(dirName(`d:`)); // `d:`
writeln(dirName(`d:file`)); // `d:`
writeln(dirName(`d:\`)); // `d:\`
writeln(dirName(`d:\file`)); // `d:\`
writeln(dirName(`d:\dir\file`)); // `d:\dir`
writeln(dirName(`\\server\share\dir\file`)); // `\\server\share\dir`
writeln(dirName(`\\server\share\file`)); // `\\server\share`
writeln(dirName(`\\server\share\`)); // `\\server\share`
writeln(dirName(`\\server\share`)); // `\\server\share`
}
Authors
Lars Tandle Kyllingstad, Walter Bright, Grzegorz Adam Hankiewicz, Thomas Kühne, Andrei Alexandrescu
License
Copyright © 1999-2025 by the D Language Foundation | Page generated by ddox.