2015-10-12 99 views
0

我需要从“C:Program Files \ First Flight \ Temp Client”文件夹运行可执行文件(Temp.exe)。该文件夹包含具有类似名称的文件作为TempClientSetup.exml如何从C#中具有相同名称的文件夹中打开文件

我有这样的代码

var path = @"C:\Program Files\First Flight\Temp Client"; 
var exepath = Path.Combine(Path.GetDirectoryName(path), "Temp.exe"); 
app = Application.Launch(exepath); 

当我运行这段代码,TempClientSetup.exml文件在这里

任何线索执行的,而不是Temp.exe ? Pl建议。

+0

var exepath = Path.Combine(path,“Temp.exe”); – dremerDT

+0

放一个“\”以路径结尾......像“C:\ Program Files \ First Flight \ Temp Client \” –

+1

@PranavPatel使用Path类的想法是为了避免自己做所有这些操作系统特定的事情。你的建议打败了整个观点。 –

回答

0

在路径末尾贴上斜杠,或者除去Path.GetDirectoryName调用。

var path = @"C:\Program Files\First Flight\Temp Client\"; 
var exepath = Path.Combine(Path.GetDirectoryName(path), "Temp.exe"); 

var path = @"C:\Program Files\First Flight\Temp Client"; 
var exepath = Path.Combine(path, "Temp.exe"); 
+0

相同的方法尝试过,但没有工作 – shreevaze

+0

这两种解决方案都会为您尝试打开的exe提供正确的路径。我在发布之前检查过它们。如果你还没有得到正确的文件,那就表明文件不存在或者你的系统以某种方式搞砸了。 请你仔细检查文件是否在你期望的位置? 也请调试代码并检查exepath是否具有正确的值。如果它不请,请发布它的价值,看看我们能否进一步提供帮助? –

+0

现在适合我:)谢谢你的帮助Matt – shreevaze

0

这是解决我的问题对于那些谁面对这个问题,您可能需要设置exe文件的工作目录推出;-)这样

var psi = new ProcessStartInfo(@"Temp.exe"); 
psi.WorkingDirectory = @"C:\Program Files\First Flight\Temp Client";    
app = Application.Launch(psi); 
相关问题