2014-03-02 44 views
1

我做了一个执行可执行文件(.exe)的小程序,但是当你写下没有存在的文件时,我得到一个错误,找不到该文件。检查process.start()之前是否存在该进程。

所以我想知道是否有一种方法来检查进程是否存在,然后运行它,如果它不存在,您可以显示一个消息框。

这是我的代码

private void btn_Start_Click(object sender, EventArgs e) 
    { 


     string text = textBox1.Text; 
     Process process = new Process(); 
     if (!textBox1.Text.Contains(".exe")) 
     { 
      process.StartInfo.FileName = text + ".exe"; 
     } 
     else 
     { 
      process.StartInfo.FileName = text; 
     } 
     process.Start(); 


    } 
+2

创建之前,该进程无法存在。你的意思是这个文件。 – varocarbas

+0

@varocarbas嗯,我不知道你说的是什么,但我正在谈论一个可执行文件... –

+0

我明白了。我的评论只是一个澄清。这不是我如何称呼它,而是如何由.NET调用它:一件事是一个文件(这种情况下的可执行文件;硬盘驱动器中的文件),另一件事是一个进程(运行可执行文件时创建的进程例如;在内存中运行程序)。你想检查文件是否存在(=存在于给定的路径中;在硬盘中),以便创建一个进程并运行它(如果进程存在,则不存在:由于尚未创建它,因此不存在)。 – varocarbas

回答

2

检查该文件是否存在启动过程之前:

var processFileName = !textBox1.Text.Contains(".exe") 
    ? text + ".exe" 
    : text; 

if (File.Exists(processFileName)) 
{ 
    Process process = new Process(); 
    process.Start(processFileName); 
} 
+0

谢谢今晚我会试一试,看看 –

+0

它没有用,我已经尝试了类似的东西; –

+0

'if(File.Exists(text)) { process.Start(); } else { MessageBox.Show(“Not found”,“”); } ' 但没有工作...给我同样的问题! –

相关问题