2015-07-01 51 views
1

我無法弄清楚如何讓控制檯錯誤檢查用戶輸入,然後打開請求的文件。有人能告訴我我做錯了什麼嗎?C#打開帶有錯誤信息的變量文件

這是我目前的程序。

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.IO; 

namespace ConsoleApplication5 
{ 
class Program 
{ 
    static void Main(string[] args) 
    { 
     while (true) 
     { 
      Console.WriteLine(">Enter File to open.");//Prompt user for file name 

      try 
      { 
       if (!File.Exists(Console.ReadLine())) 
       throw new FileNotFoundException();//Check for errors 

      } 
      catch (FileNotFoundException) 
      { 
       Console.WriteLine("You stuffed up!"); //Display error message 
      } 
     } 
      System.Diagnostics.Process.Start(@Console.ReadLine()); //set valid reply response 
      Console.ReadLine(); 
     } 


    } 
} 
+0

你有一個無限循環,而(真){}這將永遠不會結束,無論你輸入給。代碼System.Diagnostics.Process.Start(@ Console.ReadLine());無法達到。如果找到該文件,則可以打開該循環。 – keerthee

回答

2

你在這一行有一個分號 if (!File.Exists(Console.ReadLine())) ;

你不把分號上if語句,如果只您if聲明以下後有一行是罰款

if (!File.Exists(Console.ReadLine())) 
       throw new FileNotFoundException();//Check for errors 

else

if (!File.Exists(Console.ReadLine())){ 
       throw new FileNotFoundException();//Check for errors 

//some more code 
} 

編輯:

class Program 
{ 
    static void Main(string[] args) 
    { 
     while (true) 
     { 
      Console.WriteLine(">Enter File to open.");//Prompt user for file name 
      string s = Console.ReadLine(); 
      try 
      { 
       if (!File.Exists(s)) 
        throw new FileNotFoundException();//Check for errors 
       else 
        System.Diagnostics.Process.Start(s); //set valid reply response 

       Console.ReadLine(); 
      } 
      catch (FileNotFoundException) 
      { 
       Console.WriteLine("You stuffed up!"); //Display error message 
      } 
     } 
    } 
} 
+0

只需修復它,它仍然不會打開我輸入到控制檯中的文件。有任何想法嗎? –

+0

@JordanSlack請參閱編輯。基本上這條線是無法訪問的'System.Diagnostics.Process.Start(@ Console.ReadLine());',將其移動到'try'塊中。 – jmc

+0

謝謝你,我已經堅持了幾個小時。 –

0
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.IO; 
namespace ABCD 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      while (true) 
      { 
       Console.WriteLine(">Enter File to open.");//Prompt user for file name 
       string fileName = Console.ReadLine(); 
       try 
       { 
        if (!File.Exists(fileName)) 
         throw new FileNotFoundException();//Check for errors 
        else 
         System.Diagnostics.Process.Start(fileName); //set valid reply response 

        Console.ReadLine(); 
       } 
       catch (FileNotFoundException) 
       { 
        Console.WriteLine("You stuffed up!"); //Display error message 
       } 
      } 
     } 
    } 
} 

只是確保你做文件名即可執行文件與輸入「.EXE」擴展,並確保你提供完整路徑。

即作出這樣的輸入 「C:\ Program Files文件\的Internet Explorer \ IEXPLORE.EXE」,以打開Internet Explorer