On Friday, 22 July 2016 at 13:30:10 UTC, Steven Schveighoffer wrote:
On 7/22/16 3:47 AM, Jonathan Marler wrote:
What's wrong with __FILE__.dirName ?

It's kinda weird, sometimes I've noticed that the __FILE__ keyword is an
absolute path, and sometimes it isn't.

If you combine it with current working directory, this should give you the full path.

Looks like std.path gives you a mechanism, I think this should work:

import std.path;
auto p = __FILE__.absolutePath;

http://dlang.org/phobos/std_path.html#.absolutePath

-Steve

That doesn't work in the example I provided:

/somedir/clean.d
/somedir/build

Say clean.d is meant to remove the build directory that lives in the same path as the clean.d script itself.

shell/anypath> rdmd /somedir/clean.d
Removing /somedir/build...

Since you are running the script from "anypath", the information that clean.d exists at /somedir is lost. The last component to know where the file was found is the compiler itself.

Reply via email to