从其他应用程序调用时获取程序目录

时间:2016-10-28 19:31:16

标签: .net

我桌面上有Program1。 Program1应该打开Program2。我在\ Folder1 \ Folder2中有Program2。

所以一切都是这样的:

计划1 =在桌面上

程序2 = \ Folder1 \ Folder2 \ Program2.exe

我在Program1中使用此代码打开Program2:

 Process.Start("Z:\Folder1\Folder2\Program2.exe")

因此,一旦Program2打开,它就会使用以下代码找到Folder1中包含的文件的路径:

 Dim Path As String= System.IO.Directory.GetParent(Environment.CurrentDirectory).ToString()

所以我们打开Program1。 Program1打开Program2。 Program2在Folder1中打开一个文件目录。

当我直接执行Program2时,一切正常。但是,当我启动Program1时,它会打开Program2,无论出于何种原因,它会认为该目录是Program1的目录。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

简单来说,Environment.CurrentDirectory反映了整个进程链启动的目录,在本例中是Program1启动时的桌面。当program2独立运行时,它会正常工作,因为这是进程开始的地方。

要始终获取Program2的目录,您应该使用Program.GetExecutingAssembly()。来自Program2中代码的位置。