On Wednesday, 27 July 2016 at 13:58:22 UTC, Jonathan Marler wrote:
On Thursday, 21 July 2016 at 19:54:34 UTC, Jonathan Marler wrote:
Is there a way to get the full path of the current source file? Something like:

__FILE_FULL_PATH__

I'm asking because I'm rewriting a batch script in D, meant to be ran with rdmd. However, the script needs to know it's own path. The original batch script uses the %~dp0 variable for this, but I'm at a loss on how to do this in D. Since rdmd compiles the executable to the %TEMP% directory, thisExePath won't work.

BATCH
-----
echo "Directory of this script is " %~dp0


DLANG
-----
import std.stdio;
int main(string[] args) {
    writeln("Directory of this script is ", ???);
}

For others who may see this thread, the __FULL_FILE_PATH__ special trait was added to the dmd compiler with this PR: https://github.com/dlang/dmd/pull/5959

At the time of this post, the latest released version of D is 2.071.1, so this trait should be available on any release after that.

Except it doesn't?

auto x(string fp = __FULL_FILE_PATH__)()
{
   pragma(msg, fp);
}

?

Reply via email to