进程的当前目录是否等于其工作目录?

时间:2012-02-12 04:14:22

标签: .net windows

当前目录是否与工作目录相同?

当我在PATH搜索文件夹下启动程序时,第一个文件夹会成为当前目录吗?

3 个答案:

答案 0 :(得分:1)

排序。

有一个工作目录,这是一个完整的路径(包括驱动器号)。

但每个驱动器都有一个“当前目录”,它会影响驱动器相对路径(格式为D:name且驱动器规范后没有反斜杠)。 IIRC,它们存储在环境变量表中。

链接是,只要工作目录发生更改,shell就会自动更新当前目录。但其他程序并不一定如此。

PATH搜索对当前目录或工作目录没有影响。它们是从父级继承的,除非在启动新进程时明确指定。

另见this related question

答案 1 :(得分:0)

“当前目录与原始目录不同,原始目录是启动流程的目录。”......如指向here

顺便说一句,关于你的问题标题,没有当前或工作目录,有一个叫做“当前工作目录”的东西(再次,从上面的链接)。

在您的应用程序中,您无法确定应用程序启动时当前工作目录的位置,但如果需要,您可以set it

(我的链接是.net相关的,可能不是您选择的技术)。

答案 2 :(得分:0)

“当前目录”是活动进程的属性。

AFAIK,“当前目录”,“当前工作目录”和“工作目录”都是完全相同的同义词。他们当然在Linux,Java(可以说是.Net)的土地上。但是,在Windows中,进程可以为每个驱动器使用不同的“工作目录”:

程序的“初始目录”通常是以下之一:

  • 您启动它的目录(从命令行),

  • .exe所在的目录(如果您从Windows资源管理器中双击它),或

  • 桌面链接指定的目录(如果双击Windows快捷方式)

换句话说,“初始目录”和“exe所在的目录”可以相同或不同。

  • 正在运行的进程的“初始目录”与“路径”没有任何关系。

该路径有助于操作系统找到 .exe(为了加载和运行它),但它用于分配“初始目录”。

'希望有所帮助