View source code Display the source code in std/path.d from which this page was generated on github. 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. Page wiki View or edit the community-maintained wiki page associated with this page.

Function std.path.pathSplitter

Slice up a path into its elements.

Prototype

auto pathSplitter(R)(
  R path
)
if (isRandomAccessRange!R && hasSlicing!R || isSomeString!R);

Parameters

NameDescription
path string or slicable random access range

Returns

bidirectional range of slices of path

Examples

assert (equal(pathSplitter("/"), ["/"]));
assert (equal(pathSplitter("/foo/bar"), ["/", "foo", "bar"]));
assert (equal(pathSplitter("//foo/bar"), ["//foo", "bar"]));
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

Boost License 1.0

Comments