我桌面上有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的目录。
有什么想法吗?
答案 0 :(得分:0)
简单来说,Environment.CurrentDirectory反映了整个进程链启动的目录,在本例中是Program1启动时的桌面。当program2独立运行时,它会正常工作,因为这是进程开始的地方。
要始终获取Program2的目录,您应该使用Program.GetExecutingAssembly()。来自Program2中代码的位置。