www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - Anyone know why system change directory calls don't work?

reply Andrej Mitrovic <none none.none> writes:
E.g.:

import std.process;
system(r"cd C:\newfolder");  // no effect

It just stays in the same folder as the exe. I can use SetCurrentDirectoryA as
an alternative, but why doesn't it work via the system call?
May 28 2011
next sibling parent Bernard Helyer <b.helyer gmail.com> writes:
On Sun, 29 May 2011 00:54:10 -0400, Andrej Mitrovic wrote:

 E.g.:
 
 import std.process;
 system(r"cd C:\newfolder");  // no effect
 
 It just stays in the same folder as the exe. I can use
 SetCurrentDirectoryA as an alternative, but why doesn't it work via the
 system call?

Because system starts a shell process -- the cd only affects that process, not the parent process (that's you!).
May 28 2011
prev sibling parent Andrej Mitrovic <andrej.mitrovich gmail.com> writes:
Oh ok. I thought console apps would automagically follow cd calls
invoked via system. I got it wrong. Thanks.
May 28 2011