2013-03-11 110 views

回答

6

当前目录和工作目录对同一事物只是两个不同的名称。每个进程维护一个当前目录。

当前目录在启动时指定为参数,无论用哪个函数创建进程,例如CreateProcess。你如何改变你的一个应用程序的当前目录?那么,这取决于你如何开始它。

  • 如果从快捷方式启动它,请更改快捷方式的属性以指定当前目录。
  • 如果从命令提示符开始,当前目录将是您启动它时命令提示符的当前目录。
  • 如果您通过致电CreateProcess开始,则工作电流将为您在lpCurrentDirectory参数中传递给CreateProcess的任何值。如果您通过NULL,则会使用父进程的当前目录。
+0

当我从快捷方式启动Notepad ++时,我在Process Explorer中看到当前目录。我将它视为C:\ Windows。当我在lpCurrentDirectory字段中执行createProcess并设置一些有效的目录(如D:\ abcd)时,它仍然显示C:\ Windows。不应该显示D:\ abcd? – user2024398 2013-03-11 11:36:27

+0

好的,记住一个进程可以随时修改它自己的当前目录。也许恩普正在那样做。我不知道。您的'CreateProcess'调用也有可能存在缺陷。 – 2013-03-11 11:42:43

+0

感谢:)...对不起,我无法upvote你的答案,因为我是新来的Stackoverflow和我的声望低于15分。我一旦得到它们就会做。 – user2024398 2013-03-12 06:05:01