View source code
Display the source code in std/path.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.path.pathSplitter
Slice up a path into its elements.
auto pathSplitter(R)
(
R path
)
if ((isRandomAccessRange!R && hasSlicing!R || isNarrowString!R) && !isConvertibleToString!R);
Parameters
Name | Description |
---|---|
path | string or slicable random access range |
Returns
bidirectional range of slices of path
Example
import std .algorithm .comparison : equal;
import std .conv : to;
assert(equal(pathSplitter("/"), ["/"]));
assert(equal(pathSplitter("/foo/bar"), ["/", "foo", "bar"]));
assert(equal(pathSplitter("foo/../bar//./"), ["foo", "..", "bar", "."]));
version (Posix)
{
assert(equal(pathSplitter("//foo/bar"), ["/", "foo", "bar"]));
}
version (Windows)
{
assert(equal(pathSplitter(`foo\..\bar\/.\`), ["foo", "..", "bar", "."]));
assert(equal(pathSplitter("c:"), ["c:"]));
assert(equal(pathSplitter(`c:\foo\bar`), [`c:\`, "foo", "bar"]));
assert(equal(pathSplitter(`c:foo\bar`), ["c:foo", "bar"]));
}
Authors
Lars Tandle Kyllingstad, Walter Bright, Grzegorz Adam Hankiewicz, Thomas Kühne, Andrei Alexandrescu
License
Copyright © 1999-2022 by the D Language Foundation | Page generated by ddox.