2014-03-02 83 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」,「」); } ' 但沒有工作...給我同樣的問題! –

相關問題