Working with file paths is very annoying, especially on Windows where it supports both separators most of the time.
Aside from deciding which slash to use there are a couple of areas to consider.
- Home directory
- Relative vs absolute
D provides quick work of these.
import std.path;
buildNormalizedPath("foo/bar/../peas"
.absolutePath.expandTilde);
However trying to build a path by adding slash separators is not the best choice for building a path from variables.
auto a = "foo";
auto b = "bar";
assert([a, b].joiner("/").equal(a.buildPath(b)));
And further work can be done on extensions.
assert("file.ext".extension == ".ext");
assert("file.ext".setExtension("gif") == "file.gif");
assert("file.ext".stripExtension == "file");
Top comments (0)